@continuumdao/continuum-node-sdk 1.3.39 → 1.3.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/agent-host-catalog.json +1318 -52
  2. package/dist/core/agent/user-folder.d.ts +22 -0
  3. package/dist/core/agent/user-folder.d.ts.map +1 -0
  4. package/dist/core/agent/user-folder.js +82 -0
  5. package/dist/core/agent/user-folder.js.map +1 -0
  6. package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
  7. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
  8. package/dist/core/chart/analysis/analyze-tools.js +6 -1
  9. package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
  10. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
  11. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
  12. package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
  13. package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
  14. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
  15. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
  16. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
  17. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
  18. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
  19. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
  20. package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
  21. package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
  22. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
  23. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
  24. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
  25. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
  26. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
  27. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
  28. package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
  29. package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
  30. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
  31. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
  32. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
  33. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
  34. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  35. package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
  36. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  37. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
  38. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
  39. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
  40. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
  41. package/dist/core/chart/ohlcv-session-store.d.ts +2 -0
  42. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
  43. package/dist/core/chart/ohlcv-session-store.js +66 -9
  44. package/dist/core/chart/ohlcv-session-store.js.map +1 -1
  45. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  46. package/dist/core/chart/overlay-schemas.js +2 -0
  47. package/dist/core/chart/overlay-schemas.js.map +1 -1
  48. package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
  49. package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
  50. package/dist/core/mpc/forge-dry-run-build.js +200 -0
  51. package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
  52. package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
  53. package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
  54. package/dist/core/mpc/forge-dry-run-request.js +144 -0
  55. package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
  56. package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
  57. package/dist/core/mpc/join-multisign-request.js +41 -1
  58. package/dist/core/mpc/join-multisign-request.js.map +1 -1
  59. package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
  60. package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
  61. package/dist/core/mpc/mpc-input-coerce.js +53 -0
  62. package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
  63. package/dist/core/mpc/schemas.d.ts +61 -2
  64. package/dist/core/mpc/schemas.d.ts.map +1 -1
  65. package/dist/core/mpc/schemas.js +137 -3
  66. package/dist/core/mpc/schemas.js.map +1 -1
  67. package/dist/evm/forge-dry-run-paths.d.ts +13 -0
  68. package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
  69. package/dist/evm/forge-dry-run-paths.js +39 -0
  70. package/dist/evm/forge-dry-run-paths.js.map +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/mcp/agent-chart-data-access-gate.d.ts +1 -1
  76. package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -1
  77. package/dist/mcp/agent-chart-data-access-gate.js.map +1 -1
  78. package/dist/mcp/agent-cron-jobs.d.ts +1 -1
  79. package/dist/mcp/agent-cron-jobs.d.ts.map +1 -1
  80. package/dist/mcp/agent-cron-jobs.js +9 -0
  81. package/dist/mcp/agent-cron-jobs.js.map +1 -1
  82. package/dist/mcp/agent-environment-variables.d.ts +1 -1
  83. package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
  84. package/dist/mcp/agent-environment-variables.js +3 -0
  85. package/dist/mcp/agent-environment-variables.js.map +1 -1
  86. package/dist/mcp/agent-host-catalog.d.ts +15 -2
  87. package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
  88. package/dist/mcp/agent-host-catalog.js +52 -12
  89. package/dist/mcp/agent-host-catalog.js.map +1 -1
  90. package/dist/mcp/agent-input-coerce-register.d.ts +8 -0
  91. package/dist/mcp/agent-input-coerce-register.d.ts.map +1 -0
  92. package/dist/mcp/agent-input-coerce-register.js +22 -0
  93. package/dist/mcp/agent-input-coerce-register.js.map +1 -0
  94. package/dist/mcp/agent-input-coerce.d.ts +13 -0
  95. package/dist/mcp/agent-input-coerce.d.ts.map +1 -0
  96. package/dist/mcp/agent-input-coerce.js +292 -0
  97. package/dist/mcp/agent-input-coerce.js.map +1 -0
  98. package/dist/mcp/agent-mcp-servers.d.ts +1 -1
  99. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  100. package/dist/mcp/agent-mcp-servers.js +7 -0
  101. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  102. package/dist/mcp/agent-skills.d.ts +1 -1
  103. package/dist/mcp/agent-skills.d.ts.map +1 -1
  104. package/dist/mcp/agent-skills.js +5 -0
  105. package/dist/mcp/agent-skills.js.map +1 -1
  106. package/dist/mcp/agent-webhooks.d.ts +1 -1
  107. package/dist/mcp/agent-webhooks.d.ts.map +1 -1
  108. package/dist/mcp/agent-webhooks.js +9 -0
  109. package/dist/mcp/agent-webhooks.js.map +1 -1
  110. package/dist/mcp/chart.d.ts +1 -1
  111. package/dist/mcp/chart.d.ts.map +1 -1
  112. package/dist/mcp/chart.js +38 -0
  113. package/dist/mcp/chart.js.map +1 -1
  114. package/dist/mcp/coinbase-public/register.d.ts +1 -1
  115. package/dist/mcp/coinbase-public/register.d.ts.map +1 -1
  116. package/dist/mcp/coinbase-public/register.js +6 -1
  117. package/dist/mcp/coinbase-public/register.js.map +1 -1
  118. package/dist/mcp/coinmarketcap-public/register.d.ts +1 -1
  119. package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -1
  120. package/dist/mcp/coinmarketcap-public/register.js +14 -1
  121. package/dist/mcp/coinmarketcap-public/register.js.map +1 -1
  122. package/dist/mcp/continuum-docs/config.d.ts +12 -0
  123. package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
  124. package/dist/mcp/continuum-docs/config.js +35 -0
  125. package/dist/mcp/continuum-docs/config.js.map +1 -0
  126. package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
  127. package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
  128. package/dist/mcp/continuum-docs/fetch-page.js +76 -0
  129. package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
  130. package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
  131. package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
  132. package/dist/mcp/continuum-docs/index-store.js +79 -0
  133. package/dist/mcp/continuum-docs/index-store.js.map +1 -0
  134. package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
  135. package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
  136. package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
  137. package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
  138. package/dist/mcp/continuum-docs/register.d.ts +3 -0
  139. package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
  140. package/dist/mcp/continuum-docs/register.js +69 -0
  141. package/dist/mcp/continuum-docs/register.js.map +1 -0
  142. package/dist/mcp/continuum-docs/search.d.ts +13 -0
  143. package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
  144. package/dist/mcp/continuum-docs/search.js +92 -0
  145. package/dist/mcp/continuum-docs/search.js.map +1 -0
  146. package/dist/mcp/continuum-docs/types.d.ts +81 -0
  147. package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
  148. package/dist/mcp/continuum-docs/types.js +60 -0
  149. package/dist/mcp/continuum-docs/types.js.map +1 -0
  150. package/dist/mcp/deferred/discovery-tools.d.ts +1 -1
  151. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
  152. package/dist/mcp/deferred/discovery-tools.js +57 -15
  153. package/dist/mcp/deferred/discovery-tools.js.map +1 -1
  154. package/dist/mcp/deferred/session.d.ts +15 -2
  155. package/dist/mcp/deferred/session.d.ts.map +1 -1
  156. package/dist/mcp/deferred/session.js +128 -80
  157. package/dist/mcp/deferred/session.js.map +1 -1
  158. package/dist/mcp/deferred/tool-group-map.d.ts +15 -2
  159. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  160. package/dist/mcp/deferred/tool-group-map.js +624 -72
  161. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  162. package/dist/mcp/defi/bitquery-api-key.d.ts +1 -1
  163. package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -1
  164. package/dist/mcp/defi/discovery.d.ts +1 -1
  165. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  166. package/dist/mcp/defi/discovery.js +15 -3
  167. package/dist/mcp/defi/discovery.js.map +1 -1
  168. package/dist/mcp/defi/handler.d.ts +13 -6
  169. package/dist/mcp/defi/handler.d.ts.map +1 -1
  170. package/dist/mcp/defi/mcp-json-schema.d.ts +23 -0
  171. package/dist/mcp/defi/mcp-json-schema.d.ts.map +1 -0
  172. package/dist/mcp/defi/mcp-json-schema.js +173 -0
  173. package/dist/mcp/defi/mcp-json-schema.js.map +1 -0
  174. package/dist/mcp/defi/register-protocol-tools.d.ts +1 -1
  175. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  176. package/dist/mcp/defi/register-protocol-tools.js +41 -4
  177. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  178. package/dist/mcp/defi/the-graph-api-key.d.ts +1 -1
  179. package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -1
  180. package/dist/mcp/defi/tool-schemas.d.ts +4 -3
  181. package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
  182. package/dist/mcp/defi/tool-schemas.js +6 -4
  183. package/dist/mcp/defi/tool-schemas.js.map +1 -1
  184. package/dist/mcp/defi/uniswap-api-key.d.ts +1 -1
  185. package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
  186. package/dist/mcp/defi/venice-api-key.d.ts +1 -1
  187. package/dist/mcp/defi/venice-api-key.d.ts.map +1 -1
  188. package/dist/mcp/docs/search-index.json +2594 -0
  189. package/dist/mcp/group.d.ts +1 -1
  190. package/dist/mcp/group.d.ts.map +1 -1
  191. package/dist/mcp/group.js +3 -3
  192. package/dist/mcp/group.js.map +1 -1
  193. package/dist/mcp/keygen-messaging.d.ts +1 -1
  194. package/dist/mcp/keygen-messaging.d.ts.map +1 -1
  195. package/dist/mcp/keygen-messaging.js +10 -0
  196. package/dist/mcp/keygen-messaging.js.map +1 -1
  197. package/dist/mcp/keygen.d.ts +1 -1
  198. package/dist/mcp/keygen.d.ts.map +1 -1
  199. package/dist/mcp/keygen.js +6 -3
  200. package/dist/mcp/keygen.js.map +1 -1
  201. package/dist/mcp/management-signer.d.ts +1 -1
  202. package/dist/mcp/management-signer.d.ts.map +1 -1
  203. package/dist/mcp/management-signer.js +1 -1
  204. package/dist/mcp/management-signer.js.map +1 -1
  205. package/dist/mcp/mcp-resources.d.ts +1 -1
  206. package/dist/mcp/mcp-resources.d.ts.map +1 -1
  207. package/dist/mcp/mpc.d.ts +1 -1
  208. package/dist/mcp/mpc.d.ts.map +1 -1
  209. package/dist/mcp/mpc.js +57 -7
  210. package/dist/mcp/mpc.js.map +1 -1
  211. package/dist/mcp/node.d.ts +1 -1
  212. package/dist/mcp/node.d.ts.map +1 -1
  213. package/dist/mcp/node.js +7 -1
  214. package/dist/mcp/node.js.map +1 -1
  215. package/dist/mcp/ohlcv-session-wrapper.d.ts +1 -2
  216. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
  217. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
  218. package/dist/mcp/register.d.ts +1 -1
  219. package/dist/mcp/register.d.ts.map +1 -1
  220. package/dist/mcp/register.js +6 -6
  221. package/dist/mcp/register.js.map +1 -1
  222. package/dist/mcp/registry/address-book.d.ts +1 -1
  223. package/dist/mcp/registry/address-book.d.ts.map +1 -1
  224. package/dist/mcp/registry/address-book.js +1 -0
  225. package/dist/mcp/registry/address-book.js.map +1 -1
  226. package/dist/mcp/registry/networks.d.ts +1 -1
  227. package/dist/mcp/registry/networks.d.ts.map +1 -1
  228. package/dist/mcp/registry/networks.js +3 -1
  229. package/dist/mcp/registry/networks.js.map +1 -1
  230. package/dist/mcp/registry/tokens.d.ts +1 -1
  231. package/dist/mcp/registry/tokens.d.ts.map +1 -1
  232. package/dist/mcp/registry/tokens.js +2 -0
  233. package/dist/mcp/registry/tokens.js.map +1 -1
  234. package/dist/mcp/resources/chart-analysis.md +1 -1
  235. package/dist/mcp/resources/mpc.md +11 -1
  236. package/dist/mcp/server/http-transport.d.ts +1 -1
  237. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  238. package/dist/mcp/server/http-transport.js +30 -118
  239. package/dist/mcp/server/http-transport.js.map +1 -1
  240. package/dist/mcp/server/index.js +8 -1
  241. package/dist/mcp/server/index.js.map +1 -1
  242. package/dist/mcp/ta/register.d.ts +1 -1
  243. package/dist/mcp/ta/register.d.ts.map +1 -1
  244. package/dist/mcp/ta/register.js +3 -1
  245. package/dist/mcp/ta/register.js.map +1 -1
  246. package/dist/mcp/ta-server/index.js +3 -4
  247. package/dist/mcp/ta-server/index.js.map +1 -1
  248. package/dist/mcp/tool-utils.d.ts +1 -1
  249. package/dist/mcp/tool-utils.d.ts.map +1 -1
  250. package/dist/mcp/trade-tools.d.ts +1 -1
  251. package/dist/mcp/trade-tools.d.ts.map +1 -1
  252. package/dist/mcp/trade-tools.js +5 -0
  253. package/dist/mcp/trade-tools.js.map +1 -1
  254. package/dist/mcp/vpn.d.ts +1 -1
  255. package/dist/mcp/vpn.d.ts.map +1 -1
  256. package/dist/mcp/vpn.js +9 -1
  257. package/dist/mcp/vpn.js.map +1 -1
  258. package/package.json +8 -5
@@ -0,0 +1,2594 @@
1
+ {
2
+ "version": 2,
3
+ "generatedAt": "2026-08-16T14:29:42.182Z",
4
+ "pages": [
5
+ {
6
+ "path": "ContinuumDAO/C3Caller/C3CallerDemo",
7
+ "title": "Simple Demo",
8
+ "section": "C3Caller",
9
+ "headings": [
10
+ "Simple Demo — cross-chain ERC-20 with CTMERC20",
11
+ "Minimal demo token",
12
+ "Send tokens cross-chain",
13
+ "Receive on the destination",
14
+ "Fallback (failed destination execution)",
15
+ "Production reference — CTM (vectm)",
16
+ "Next steps"
17
+ ],
18
+ "sections": [
19
+ {
20
+ "id": "simple-demo-cross-chain-erc-20-with-ctmerc20",
21
+ "title": "Simple Demo — cross-chain ERC-20 with CTMERC20",
22
+ "level": 2,
23
+ "excerpt": "The recommended pattern for a fungible cross chain token is to inherit CTMERC20 from the c3caller package. ContinuumDAO’s production CTM token in vectm extends this base with fee logic and treasury integration; the demo below shows the minimal hooks required for a testnet token. CTMERC20 burns on th"
24
+ },
25
+ {
26
+ "id": "minimal-demo-token",
27
+ "title": "Minimal demo token",
28
+ "level": 3,
29
+ "excerpt": "solidity // SPDX License Identifier: BSL 1.1 pragma solidity 0.8.27; import {CTMERC20} from \"@c3caller/token/CTMERC20.sol\"; /// @notice Minimal CTMERC20 demo — see vectm/src/token/ctm/CTM.sol for production CTM. contract DemoToken is CTMERC20 { constructor(address c3caller, uint256 dappID) CTMERC20("
30
+ },
31
+ {
32
+ "id": "send-tokens-cross-chain",
33
+ "title": "Send tokens cross-chain",
34
+ "level": 3,
35
+ "excerpt": "Users call c3transfer (or c3transferFrom ) with string destination address and chain ID: solidity // Transfer 25 DEMO from this chain to recipient on BSC Testnet (chain ID \"97\") demoToken.c3transfer(recipient.toHexString(), 25 ether, \"97\"); Under the hood this: 1. Burns 25 ether locally and updates "
36
+ },
37
+ {
38
+ "id": "receive-on-the-destination",
39
+ "title": "Receive on the destination",
40
+ "level": 3,
41
+ "excerpt": "No custom receive logic is required — c3receive is implemented on CTMERC20 : solidity function c3receive(string memory fromStr, string memory toStr, uint256 amount) external virtual onlyC3Caller { address to = toStr.toAddress(); mint( to, amount); // ... } Only C3Caller (via MPC execute ) may call t"
42
+ },
43
+ {
44
+ "id": "fallback-failed-destination-execution",
45
+ "title": "Fallback (failed destination execution)",
46
+ "level": 3,
47
+ "excerpt": "If the destination c3receive reverts, the source chain runs c3Fallback , which re mints burned tokens to the original sender: solidity function c3Fallback(bytes4 selector, bytes calldata data, bytes calldata reason) internal virtual override returns (bool) { if ( selector == this.c3receive.selector)"
48
+ },
49
+ {
50
+ "id": "production-reference-ctm-vectm",
51
+ "title": "Production reference — CTM (vectm)",
52
+ "level": 3,
53
+ "excerpt": "The live Continuum token adds governance, cross chain fee deduction, and dApp fee deposit helpers on top of CTMERC20 : CTM.sol — production token with transfer fees and depositDAppRemote / depositDAppLocal . CTMMintable.sol — governance mint / burn with globalSupply cap enforcement. See vectm tests "
54
+ },
55
+ {
56
+ "id": "next-steps",
57
+ "title": "Next steps",
58
+ "level": 3,
59
+ "excerpt": "Deployment with Foundry — end to end deploy and c3transfer between testnets. Deployment with Remix — flatten and deploy workflow. Contract Addresses — published when C3Caller goes live"
60
+ }
61
+ ],
62
+ "excerpt": "The recommended pattern for a fungible cross chain token is to inherit CTMERC20 from the c3caller package. ContinuumDAO’s production CTM token in vectm extends this base with fee logic and treasury integration; the demo below shows the minimal hooks required for a testnet token. CTMERC20 burns on th",
63
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/C3CallerDemo"
64
+ },
65
+ {
66
+ "path": "ContinuumDAO/C3Caller/C3CallerFoundry",
67
+ "title": "Deployment with Foundry",
68
+ "section": "C3Caller",
69
+ "headings": [
70
+ "C3Caller Deployment Using Foundry",
71
+ "Prerequisites",
72
+ "Create a project",
73
+ "Environment",
74
+ "Implement DemoToken",
75
+ "Register the dApp (each chain)",
76
+ "Deploy DemoToken",
77
+ "Whitelist and configure peers",
78
+ "Mint and cross-chain transfer",
79
+ "Related"
80
+ ],
81
+ "sections": [
82
+ {
83
+ "id": "c3caller-deployment-using-foundry",
84
+ "title": "C3Caller Deployment Using Foundry",
85
+ "level": 2,
86
+ "excerpt": "This walkthrough deploys the DemoToken ( CTMERC20 demo from Simple Demo) on two testnets, registers the dApp on chain, and sends a cross chain transfer. C3Caller is not yet live. This guide describes the intended workflow for when protocol contracts are deployed. Use addresses from Contract Addresse"
87
+ },
88
+ {
89
+ "id": "prerequisites",
90
+ "title": "Prerequisites",
91
+ "level": 3,
92
+ "excerpt": "Foundry installed Testnet gas tokens on your chosen source and destination chains Accepted fee token on both chains (see Contract Addresses when live)"
93
+ },
94
+ {
95
+ "id": "create-a-project",
96
+ "title": "Create a project",
97
+ "level": 3,
98
+ "excerpt": "bash forge init c3caller dapp && cd c3caller dapp forge install ContinuumDAO/c3caller OpenZeppelin/openzeppelin contracts Add to remappings.txt : @c3caller/=lib/c3caller/src/ @openzeppelin/contracts/=lib/openzeppelin contracts/contracts/ Set foundry.toml compiler to solc = \"0.8.27\" (required by c3ca"
99
+ },
100
+ {
101
+ "id": "environment",
102
+ "title": "Environment",
103
+ "level": 3,
104
+ "excerpt": "Create .env (example — replace <… with live addresses when available): bash ARB SEPOLIA RPC URL=https://sepolia rollup.arbitrum.io/rpc BSC TESTNET RPC URL=https://bsc testnet dataseed.bnbchain.org/ PRIVATE KEY=0x... C3 CALLER=<C3Caller address DAPP MANAGER=<C3DAppManager address FEE TOKEN=<fee token"
105
+ },
106
+ {
107
+ "id": "implement-demotoken",
108
+ "title": "Implement DemoToken",
109
+ "level": 3,
110
+ "excerpt": "Create src/DemoToken.sol using the contract from Simple Demo. bash forge build"
111
+ },
112
+ {
113
+ "id": "register-the-dapp-each-chain",
114
+ "title": "Register the dApp (each chain)",
115
+ "level": 3,
116
+ "excerpt": "On Arbitrum Sepolia : bash source .env export ADMIN=$(cast wallet address $PRIVATE KEY) cast call $DAPP MANAGER \"deriveDAppID(address,string)(uint256)\" $ADMIN \"$DAPP KEY\" rpc url arbSepolia cast send $FEE TOKEN \"approve(address,uint256)\" $DAPP MANAGER $(cast max uint) \\ rpc url arbSepolia private ke"
117
+ },
118
+ {
119
+ "id": "deploy-demotoken",
120
+ "title": "Deploy DemoToken",
121
+ "level": 3,
122
+ "excerpt": "Arbitrum Sepolia: bash forge create src/DemoToken.sol:DemoToken \\ rpc url arbSepolia private key $PRIVATE KEY \\ constructor args $C3 CALLER $DAPP ID export ARB DEMO=<Deployed address BSC Testnet (same DAPP ID ): bash forge create src/DemoToken.sol:DemoToken \\ rpc url bscTestnet private key $PRIVATE "
123
+ },
124
+ {
125
+ "id": "whitelist-and-configure-peers",
126
+ "title": "Whitelist and configure peers",
127
+ "level": 3,
128
+ "excerpt": "On each chain: bash cast send $DAPP MANAGER \"setDAppAddr(uint256,address,bool)\" $DAPP ID $ARB DEMO true \\ rpc url arbSepolia private key $PRIVATE KEY cast send $DAPP MANAGER \"setDAppAddr(uint256,address,bool)\" $DAPP ID $BSC DEMO true \\ rpc url bscTestnet private key $PRIVATE KEY On each chain, call "
129
+ },
130
+ {
131
+ "id": "mint-and-cross-chain-transfer",
132
+ "title": "Mint and cross-chain transfer",
133
+ "level": 3,
134
+ "excerpt": "Mint on Arbitrum Sepolia: bash cast send $ARB DEMO \"mint(uint256)\" 100000000000000000000 rpc url arbSepolia private key $PRIVATE KEY Transfer 25 tokens to your address on BSC (chain ID \"97\" ). The recipient must be a hex string (same as address.toHexString() ): bash export RECIPIENT=$(cast wallet ad"
135
+ },
136
+ {
137
+ "id": "related",
138
+ "title": "Related",
139
+ "level": 3,
140
+ "excerpt": "Simple Demo (CTMERC20) Quick Start Contract Addresses c3caller repository"
141
+ }
142
+ ],
143
+ "excerpt": "This walkthrough deploys the DemoToken ( CTMERC20 demo from Simple Demo) on two testnets, registers the dApp on chain, and sends a cross chain transfer. C3Caller is not yet live. This guide describes the intended workflow for when protocol contracts are deployed. Use addresses from Contract Addresse",
144
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/C3CallerFoundry"
145
+ },
146
+ {
147
+ "path": "ContinuumDAO/C3Caller/C3CallerProtocol",
148
+ "title": "Protocol",
149
+ "section": "C3Caller",
150
+ "headings": [
151
+ "C3Caller Protocol",
152
+ "Overview",
153
+ "How it Works",
154
+ "Core contracts",
155
+ "DApp base types",
156
+ "Contract Structure"
157
+ ],
158
+ "sections": [
159
+ {
160
+ "id": "c3caller-protocol",
161
+ "title": "C3Caller Protocol",
162
+ "level": 2,
163
+ "excerpt": "C3Caller lets a dApp on chain A call a function on chain B by emitting a message that the Relayer and MPC network verify, sign, and deliver as an execute on the destination C3Caller contract. Once a dApp is registered in C3DAppManager and its contract addresses are whitelisted with setDAppAddr , out"
164
+ },
165
+ {
166
+ "id": "overview",
167
+ "title": "Overview",
168
+ "level": 3,
169
+ "excerpt": "C3Caller lets a dApp on chain A call a function on chain B by emitting a message that the Relayer and MPC network verify, sign, and deliver as an execute on the destination C3Caller contract. Once a dApp is registered in C3DAppManager and its contract addresses are whitelisted with setDAppAddr , out"
170
+ },
171
+ {
172
+ "id": "how-it-works",
173
+ "title": "How it Works",
174
+ "level": 3,
175
+ "excerpt": "1. Outgoing message — your dApp inherits C3CallerDApp (or CTMERC20 ) and calls c3call with string destination address, string chain ID, and calldata. This invokes C3Caller.c3call , which emits an event consumed by the Scanner / Relayer. solidity // Internal helper on C3CallerDApp function c3call(str"
176
+ },
177
+ {
178
+ "id": "core-contracts",
179
+ "title": "Core contracts",
180
+ "level": 3,
181
+ "excerpt": "Contract Role C3Caller Entry point for outgoing c3call / incoming execute ; only MPC may execute. C3UUIDKeeper Tracks UUID status for each cross chain operation. C3DAppManager dApp registration ( initDAppConfig ), fee deposits, contract allowlists ( setDAppAddr ), fee configuration. ContinuumDAO pro"
182
+ },
183
+ {
184
+ "id": "dapp-base-types",
185
+ "title": "DApp base types",
186
+ "level": 3,
187
+ "excerpt": "Type Use when C3CallerDApp Arbitrary cross chain contract calls. C3GovernDApp Adds a gov admin (used by CTM and governance contracts). CTMERC20 Cross chain ERC 20: c3transfer , c3receive , setPeer , built in fallback minting. Production reference: CTM / CTMMintable in vectm."
188
+ },
189
+ {
190
+ "id": "contract-structure",
191
+ "title": "Contract Structure",
192
+ "level": 3,
193
+ "excerpt": "<img src=\"/ media/C3CallerContractStructure.png\" alt=\"\"/ Roles Operator (MPC) — only MPC signed executors may call C3Caller.execute and onlyC3Caller functions on dApps. Governance — DAO / admin controls upgrades, fee rates, and (where applicable) dApp configuration via C3DAppManager governance funct"
194
+ }
195
+ ],
196
+ "excerpt": "C3Caller lets a dApp on chain A call a function on chain B by emitting a message that the Relayer and MPC network verify, sign, and deliver as an execute on the destination C3Caller contract. Once a dApp is registered in C3DAppManager and its contract addresses are whitelisted with setDAppAddr , out",
197
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/C3CallerProtocol"
198
+ },
199
+ {
200
+ "path": "ContinuumDAO/C3Caller/C3CallerTest",
201
+ "title": "Deployment with Remix",
202
+ "section": "C3Caller",
203
+ "headings": [
204
+ "C3Caller with Remix",
205
+ "1. Register the dApp on-chain",
206
+ "2. Prepare flattened contracts",
207
+ "3. Create DemoToken.sol in Remix",
208
+ "4. Deploy on chain A",
209
+ "5. Whitelist the deployment",
210
+ "6. Deploy on chain B",
211
+ "7. Configure peers",
212
+ "8. Test a transfer",
213
+ "Contract addresses",
214
+ "Related"
215
+ ],
216
+ "sections": [
217
+ {
218
+ "id": "c3caller-with-remix",
219
+ "title": "C3Caller with Remix",
220
+ "level": 2,
221
+ "excerpt": "This guide deploys the CTMERC20 demo token via Remix. For a full Foundry workflow, see Deployment with Foundry. C3Caller is not yet live. This guide describes the intended workflow for when protocol contracts are deployed. Registration: there is no live dApp registration frontend (coming soon). Regi"
222
+ },
223
+ {
224
+ "id": "1-register-the-dapp-on-chain",
225
+ "title": "1. Register the dApp on-chain",
226
+ "level": 3,
227
+ "excerpt": "On each testnet you plan to use (when live): 1. Approve the fee token for C3DAppManager on that chain. 2. Call initDAppConfig(dappKey, feeToken, metadata) with the same admin wallet and dappKey on every chain. 3. Note your dappID : deriveDAppID(admin, dappKey) on C3DAppManager . Use Remix “Deploy & "
228
+ },
229
+ {
230
+ "id": "2-prepare-flattened-contracts",
231
+ "title": "2. Prepare flattened contracts",
232
+ "level": 3,
233
+ "excerpt": "Remix works best with flattened sources. From a local clone of c3caller: bash git clone https://github.com/ContinuumDAO/c3caller.git cd c3caller forge install ./helpers/0 flatten.sh writes build/token/CTMERC20.sol and other artifacts Upload build/token/CTMERC20.sol (or the whole build/ folder) into "
234
+ },
235
+ {
236
+ "id": "3-create-demotoken-sol-in-remix",
237
+ "title": "3. Create DemoToken.sol in Remix",
238
+ "level": 3,
239
+ "excerpt": "Add a new file DemoToken.sol : solidity // SPDX License Identifier: BSL 1.1 pragma solidity 0.8.27; import \"./CTMERC20.sol\"; // flattened file from c3caller build/ contract DemoToken is CTMERC20 { constructor(address c3caller, uint256 dappID) CTMERC20(\"Demo Token\", \"DEMO\", c3caller, dappID) {} funct"
240
+ },
241
+ {
242
+ "id": "4-deploy-on-chain-a",
243
+ "title": "4. Deploy on chain A",
244
+ "level": 3,
245
+ "excerpt": "Constructor arguments: Field Value c3caller C3Caller address on this chain (see Contract Addresses) dappID Your derived dApp ID from registration Deploy and save the contract address."
246
+ },
247
+ {
248
+ "id": "5-whitelist-the-deployment",
249
+ "title": "5. Whitelist the deployment",
250
+ "level": 3,
251
+ "excerpt": "In Remix, attach to C3DAppManager on the same chain and call: setDAppAddr(dappID, demoTokenAddress, true)"
252
+ },
253
+ {
254
+ "id": "6-deploy-on-chain-b",
255
+ "title": "6. Deploy on chain B",
256
+ "level": 3,
257
+ "excerpt": "Use the same dappID and the C3Caller address on the destination chain. Whitelist with setDAppAddr there as well."
258
+ },
259
+ {
260
+ "id": "7-configure-peers",
261
+ "title": "7. Configure peers",
262
+ "level": 3,
263
+ "excerpt": "On each DemoToken deployment, call setPeer(toChainIDStr, peerAddressStr) pointing at the sister deployment. Chain IDs and addresses are strings ."
264
+ },
265
+ {
266
+ "id": "8-test-a-transfer",
267
+ "title": "8. Test a transfer",
268
+ "level": 3,
269
+ "excerpt": "On the source chain (once the Relayer is live): 1. Call mint to fund your wallet. 2. Call c3transfer(recipientHexString, amount, toChainIDStr) . After the Relayer processes the message, check balanceOf on the destination deployment."
270
+ },
271
+ {
272
+ "id": "contract-addresses",
273
+ "title": "Contract addresses",
274
+ "level": 3,
275
+ "excerpt": "See Contract Addresses — published when C3Caller goes live."
276
+ },
277
+ {
278
+ "id": "related",
279
+ "title": "Related",
280
+ "level": 3,
281
+ "excerpt": "Simple Demo (CTMERC20) — API explanation Quick Start — registration details Production CTM reference: vectm/src/token/ctm/CTM.sol"
282
+ }
283
+ ],
284
+ "excerpt": "This guide deploys the CTMERC20 demo token via Remix. For a full Foundry workflow, see Deployment with Foundry. C3Caller is not yet live. This guide describes the intended workflow for when protocol contracts are deployed. Registration: there is no live dApp registration frontend (coming soon). Regi",
285
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/C3CallerTest"
286
+ },
287
+ {
288
+ "path": "ContinuumDAO/C3Caller/ContractAddresses",
289
+ "title": "Contract Addresses",
290
+ "section": "C3Caller",
291
+ "headings": [
292
+ "Contract Addresses",
293
+ "Public testnets",
294
+ "ContinuumDAO production"
295
+ ],
296
+ "sections": [
297
+ {
298
+ "id": "contract-addresses",
299
+ "title": "Contract Addresses",
300
+ "level": 2,
301
+ "excerpt": "C3Caller is not yet live. Protocol contracts and the Relayer / Scanner backend are still in final testing. No production or public testnet addresses are published here yet. This page will be updated when deployments go live. When available, addresses will be listed per network for: Contract Role C3U"
302
+ },
303
+ {
304
+ "id": "public-testnets",
305
+ "title": "Public testnets",
306
+ "level": 3,
307
+ "excerpt": "Network Chain ID C3UUIDKeeper C3DAppManager C3Caller Fee token"
308
+ },
309
+ {
310
+ "id": "continuumdao-production",
311
+ "title": "ContinuumDAO production",
312
+ "level": 3,
313
+ "excerpt": "Network C3UUIDKeeper C3DAppManager C3Caller C3Governor CTM Chain IDs used in c3transfer , setPeer , and c3call are decimal strings (e.g. \"97\" , \"421614\" ). Deploy configuration in the repos (c3caller/deployments.toml, vectm/config/deployments.toml) is for internal / staging use only until launch — d"
314
+ }
315
+ ],
316
+ "excerpt": "C3Caller is not yet live. Protocol contracts and the Relayer / Scanner backend are still in final testing. No production or public testnet addresses are published here yet. This page will be updated when deployments go live. When available, addresses will be listed per network for: Contract Role C3U",
317
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/ContractAddresses"
318
+ },
319
+ {
320
+ "path": "ContinuumDAO/C3Caller/Contracts",
321
+ "title": "or: forge soldeer install @c3caller~0.3.1",
322
+ "section": "C3Caller",
323
+ "headings": [
324
+ "Contracts",
325
+ "or: forge soldeer install @c3caller~0.3.1",
326
+ "Protocol layer",
327
+ "DApp bases",
328
+ "Production tokens (vectm)",
329
+ "Security",
330
+ "Related"
331
+ ],
332
+ "sections": [
333
+ {
334
+ "id": "contracts",
335
+ "title": "Contracts",
336
+ "level": 2,
337
+ "excerpt": "Smart contracts ship from the c3caller repository. Install as a dependency: bash forge install ContinuumDAO/c3caller"
338
+ },
339
+ {
340
+ "id": "or-forge-soldeer-install-c3caller-0-3-1",
341
+ "title": "or: forge soldeer install @c3caller~0.3.1",
342
+ "level": 1,
343
+ "excerpt": "Solidity 0.8.27 , OpenZeppelin Contracts 5.4.0 . Contract Path Purpose C3Caller src/C3Caller.sol Outgoing c3call events; incoming MPC execute . C3UUIDKeeper src/uuid/C3UUIDKeeper.sol UUID lifecycle / completion tracking. C3DAppManager src/dapp/C3DAppManager.sol dApp registration, fees, allowlists. U"
344
+ },
345
+ {
346
+ "id": "protocol-layer",
347
+ "title": "Protocol layer",
348
+ "level": 3,
349
+ "excerpt": "Contract Path Purpose C3Caller src/C3Caller.sol Outgoing c3call events; incoming MPC execute . C3UUIDKeeper src/uuid/C3UUIDKeeper.sol UUID lifecycle / completion tracking. C3DAppManager src/dapp/C3DAppManager.sol dApp registration, fees, allowlists. Upgradeable variants live under src/upgradeable/ f"
350
+ },
351
+ {
352
+ "id": "dapp-bases",
353
+ "title": "DApp bases",
354
+ "level": 3,
355
+ "excerpt": "Contract Path Purpose C3CallerDApp src/dapp/C3CallerDApp.sol Abstract base: c3call , c3Fallback , onlyC3Caller . C3GovernDApp src/gov/C3GovernDApp.sol Adds gov admin role. CTMERC20 src/token/CTMERC20.sol Cross chain ERC 20: c3transfer , c3receive , setPeer ."
356
+ },
357
+ {
358
+ "id": "production-tokens-vectm",
359
+ "title": "Production tokens (vectm)",
360
+ "level": 3,
361
+ "excerpt": "Contract Repository Purpose CTM vectm/src/token/ctm/CTM.sol Production Continuum token on top of CTMERC20 . CTMMintable vectm/src/token/ctm/CTMMintable.sol Governance controlled mint/burn with global supply cap. C3Governor vectm Cross chain OpenZeppelin Governor broadcasts."
362
+ },
363
+ {
364
+ "id": "security",
365
+ "title": "Security",
366
+ "level": 3,
367
+ "excerpt": "Audited by QuillAudits (Dec 2025): leaderboard entry · vectm/audits."
368
+ },
369
+ {
370
+ "id": "related",
371
+ "title": "Related",
372
+ "level": 3,
373
+ "excerpt": "Contract Addresses Quick Start Protocol"
374
+ }
375
+ ],
376
+ "excerpt": "Smart contracts ship from the c3caller repository. Install as a dependency: bash forge install ContinuumDAO/c3caller Solidity 0.8.27 , OpenZeppelin Contracts 5.4.0 . Contract Path Purpose C3Caller src/C3Caller.sol Outgoing c3call events; incoming MPC execute . C3UUIDKeeper src/uuid/C3UUIDKeeper.sol ",
377
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/Contracts"
378
+ },
379
+ {
380
+ "path": "ContinuumDAO/C3Caller/Overview",
381
+ "title": "Overview",
382
+ "section": "C3Caller",
383
+ "headings": [
384
+ "Overview",
385
+ "Security audit",
386
+ "Why C3Caller?",
387
+ "Advantages"
388
+ ],
389
+ "sections": [
390
+ {
391
+ "id": "overview",
392
+ "title": "Overview",
393
+ "level": 2,
394
+ "excerpt": "C3Caller is an open source messaging protocol for building multi chain, interoperable applications. Developers register a dApp on each chain they want to connect, deploy contracts that inherit C3CallerDApp (or CTMERC20 for fungible cross chain tokens), and send arbitrary calldata through the Continu"
395
+ },
396
+ {
397
+ "id": "security-audit",
398
+ "title": "Security audit",
399
+ "level": 3,
400
+ "excerpt": "The C3Caller / vectm contract suite was reviewed by QuillAudits (Dec 2025). Audit details: QuillAudits leaderboard — ContinuumDAO. Additional audit artifacts are published in vectm/audits."
401
+ },
402
+ {
403
+ "id": "why-c3caller",
404
+ "title": "Why C3Caller?",
405
+ "level": 2,
406
+ "excerpt": "C3Caller is a fully open source, decentralized cross chain messaging protocol developed and governed by ContinuumDAO. Smart contracts on each chain separate governance (DAO voting) from operational execution (MPC signed execute calls). Cross chain messages are verified by MPC nodes and relayed to de"
407
+ },
408
+ {
409
+ "id": "advantages",
410
+ "title": "Advantages",
411
+ "level": 2,
412
+ "excerpt": "Decentralization — governance and operator roles are separated; only the MPC network may execute incoming cross chain calls. Security — operational signing keys live in the MPC network; source chain transactions are verified before a destination execute . Extensibility — verification modules can be "
413
+ }
414
+ ],
415
+ "excerpt": "C3Caller is an open source messaging protocol for building multi chain, interoperable applications. Developers register a dApp on each chain they want to connect, deploy contracts that inherit C3CallerDApp (or CTMERC20 for fungible cross chain tokens), and send arbitrary calldata through the Continu",
416
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/Overview"
417
+ },
418
+ {
419
+ "path": "ContinuumDAO/C3Caller/QuickStart",
420
+ "title": "Preview the dApp ID (must match on every chain)",
421
+ "section": "C3Caller",
422
+ "headings": [
423
+ "Quick Start",
424
+ "1. Register your dApp (on-chain)",
425
+ "Preview the dApp ID (must match on every chain)",
426
+ "2. Deploy your dApp contract",
427
+ "or: forge soldeer install @c3caller~0.3.1",
428
+ "3. Whitelist deployed addresses",
429
+ "4. Fund fee reserves",
430
+ "5. For CTMERC20 tokens — configure peers",
431
+ "Contract implementation sketch"
432
+ ],
433
+ "sections": [
434
+ {
435
+ "id": "quick-start",
436
+ "title": "Quick Start",
437
+ "level": 2,
438
+ "excerpt": "C3Caller is not yet live. The steps below describe the workflow for when protocol contracts are deployed. See Contract Addresses for launch status. There is no live registration frontend yet (C3Caller Hub — coming soon). When live, register on each network where you want to send or receive messages."
439
+ },
440
+ {
441
+ "id": "1-register-your-dapp-on-chain",
442
+ "title": "1. Register your dApp (on-chain)",
443
+ "level": 3,
444
+ "excerpt": "There is no live registration frontend yet (C3Caller Hub — coming soon). When live, register on each network where you want to send or receive messages. On every chain, call C3DAppManager.initDAppConfig with: 1. dappKey — a stable string you reuse on all chains, e.g. v1.myprotocol.demotoken . The dA"
445
+ },
446
+ {
447
+ "id": "preview-the-dapp-id-must-match-on-every-chain",
448
+ "title": "Preview the dApp ID (must match on every chain)",
449
+ "level": 1,
450
+ "excerpt": "cast call $DAPP MANAGER \"deriveDAppID(address,string)(uint256)\" $YOUR ADDRESS \"$DAPP KEY\" rpc url $ARB SEPOLIA RPC URL cast send $FEE TOKEN \"approve(address,uint256)\" $DAPP MANAGER $(cast max uint) rpc url $ARB SEPOLIA RPC URL private key $PRIVATE KEY cast send $DAPP MANAGER \"initDAppConfig(string,a"
451
+ },
452
+ {
453
+ "id": "2-deploy-your-dapp-contract",
454
+ "title": "2. Deploy your dApp contract",
455
+ "level": 3,
456
+ "excerpt": "Install the library: bash forge install ContinuumDAO/c3caller"
457
+ },
458
+ {
459
+ "id": "or-forge-soldeer-install-c3caller-0-3-1",
460
+ "title": "or: forge soldeer install @c3caller~0.3.1",
461
+ "level": 1,
462
+ "excerpt": "Your contract inherits C3CallerDApp (arbitrary messaging) or CTMERC20 (cross chain ERC 20 — recommended for fungible tokens; see Simple Demo and the production CTM token in vectm). Constructor arguments: 1. c3caller — the C3Caller contract on this network (not a legacy “proxy endpoint”). 2. dappID —"
463
+ },
464
+ {
465
+ "id": "3-whitelist-deployed-addresses",
466
+ "title": "3. Whitelist deployed addresses",
467
+ "level": 3,
468
+ "excerpt": "On each network, the dApp admin calls: bash cast send $DAPP MANAGER \"setDAppAddr(uint256,address,bool)\" $DAPP ID $YOUR CONTRACT true \\ rpc url $RPC URL private key $PRIVATE KEY Only whitelisted contracts may send or receive C3Caller messages for that dApp ID."
469
+ },
470
+ {
471
+ "id": "4-fund-fee-reserves",
472
+ "title": "4. Fund fee reserves",
473
+ "level": 3,
474
+ "excerpt": "Top up the dApp’s fee balance when needed: bash cast send $FEE TOKEN \"approve(address,uint256)\" $DAPP MANAGER $AMOUNT rpc url $RPC URL private key $PRIVATE KEY cast send $DAPP MANAGER \"deposit(uint256,address,uint256)\" $DAPP ID $FEE TOKEN $AMOUNT \\ rpc url $RPC URL private key $PRIVATE KEY On public"
475
+ },
476
+ {
477
+ "id": "5-for-ctmerc20-tokens-configure-peers",
478
+ "title": "5. For CTMERC20 tokens — configure peers",
479
+ "level": 3,
480
+ "excerpt": "Cross chain ERC 20 dApps must map sister deployments: bash cast send $YOUR TOKEN \"setPeer(string,string)\" \"97\" $BSC DEPLOYED ADDRESS HEX \\ rpc url $ARB SEPOLIA RPC URL private key $PRIVATE KEY Chain IDs and peer addresses are strings (EVM addresses as hex strings) for non EVM compatibility."
481
+ },
482
+ {
483
+ "id": "contract-implementation-sketch",
484
+ "title": "Contract implementation sketch",
485
+ "level": 3,
486
+ "excerpt": "solidity import {C3CallerDApp} from \"@c3caller/dapp/C3CallerDApp.sol\"; import {Strings} from \"@openzeppelin/contracts/utils/Strings.sol\"; contract MyDApp is C3CallerDApp { using Strings for address; constructor(address c3caller, uint256 dappID) C3CallerDApp( c3caller, dappID) {} function onMessage(s"
487
+ }
488
+ ],
489
+ "excerpt": "C3Caller is not yet live. The steps below describe the workflow for when protocol contracts are deployed. See Contract Addresses for launch status. There is no live registration frontend yet (C3Caller Hub — coming soon). When live, register on each network where you want to send or receive messages.",
490
+ "url": "https://docs.continuumdao.org/ContinuumDAO/C3Caller/QuickStart"
491
+ },
492
+ {
493
+ "path": "ContinuumDAO/ContinuumDAO/MPCSigner/ConfiguredNodes",
494
+ "title": "ConfiguredNodes",
495
+ "section": "",
496
+ "headings": [],
497
+ "sections": [],
498
+ "excerpt": "",
499
+ "url": "https://docs.continuumdao.org/ContinuumDAO/ContinuumDAO/MPCSigner/ConfiguredNodes"
500
+ },
501
+ {
502
+ "path": "ContinuumDAO/ContinuumDAO/MPCSignerConfiguredNodes",
503
+ "title": "MPCSignerConfiguredNodes",
504
+ "section": "",
505
+ "headings": [],
506
+ "sections": [],
507
+ "excerpt": "",
508
+ "url": "https://docs.continuumdao.org/ContinuumDAO/ContinuumDAO/MPCSignerConfiguredNodes"
509
+ },
510
+ {
511
+ "path": "ContinuumDAO/Governance/Constitution",
512
+ "title": "**ContinuumDAO Introduction**",
513
+ "section": "Governance",
514
+ "headings": [
515
+ "**ContinuumDAO Introduction**",
516
+ "Mission & Vision",
517
+ "**Mission:**",
518
+ "**Vision:**",
519
+ "ContinuumDAO Governance Structure:",
520
+ "The ContinuumDAO Forum",
521
+ "The Governance Process",
522
+ "**The Temperature Check/Proposal Template:**",
523
+ "ContinuumDAO Proposals and Voting",
524
+ "Security/Emergency Procedure",
525
+ "Treasury",
526
+ "ContinuumDAO ethics"
527
+ ],
528
+ "sections": [
529
+ {
530
+ "id": "continuumdao-introduction",
531
+ "title": "ContinuumDAO Introduction",
532
+ "level": 1,
533
+ "excerpt": "This document is the Constitution of ContinuumDAO (CTMDAO). CTMDAO will consistently leverage the benefits of DAO governance and the unique features of MPC to ensure the stability and security of our network called the Continuum. Some of the rules and procedures in the Constitution will be enforced "
534
+ },
535
+ {
536
+ "id": "mission-amp-vision",
537
+ "title": "Mission & Vision",
538
+ "level": 2,
539
+ "excerpt": "The mission is to create public goods that connect all web protocols and networks in a decentralized manner. Our vision is to connect the world by building the public goods of web3. We aim to provide a fully decentralized MPC infrastructure that enables dApps on different blockchains to connect, or "
540
+ },
541
+ {
542
+ "id": "mission",
543
+ "title": "Mission:",
544
+ "level": 3,
545
+ "excerpt": "The mission is to create public goods that connect all web protocols and networks in a decentralized manner."
546
+ },
547
+ {
548
+ "id": "vision",
549
+ "title": "Vision:",
550
+ "level": 3,
551
+ "excerpt": "Our vision is to connect the world by building the public goods of web3. We aim to provide a fully decentralized MPC infrastructure that enables dApps on different blockchains to connect, or to provide unique MPC related services, with trustless coordinated decision making."
552
+ },
553
+ {
554
+ "id": "continuumdao-governance-structure",
555
+ "title": "ContinuumDAO Governance Structure:",
556
+ "level": 3,
557
+ "excerpt": "There will be three governance roles: Committee, Contributor, and Citizen. The Committee will commit to uphold the ContinuumDAO Constitution. They will be the custodians of the important security information of CTMDAO. They will be responsible for submitting proposals that have passed a Temperature "
558
+ },
559
+ {
560
+ "id": "the-continuumdao-forum",
561
+ "title": "The ContinuumDAO Forum",
562
+ "level": 3,
563
+ "excerpt": "The Forum is a Bulletin Board hosted by CTMDAO on its website at forum.continuumdao.org . It is the official record of the proceedings of ContinuumDAO. All business concerning the DAO will be documented here, including proposals, Committee proceedings, Treasury asset transfers and Guild actions. The"
564
+ },
565
+ {
566
+ "id": "the-governance-process",
567
+ "title": "The Governance Process",
568
+ "level": 3,
569
+ "excerpt": "All proposals will appear in the Governance section of the Forum. Every veCTM holder will have access to all Governance sections in the Forum. There are only two steps of the governance process: Temperature Check & Formal Vote . Temperature Check: A proposal needs to be submitted by a wallet address"
570
+ },
571
+ {
572
+ "id": "the-temperature-check-proposal-template",
573
+ "title": "The Temperature Check/Proposal Template:",
574
+ "level": 3,
575
+ "excerpt": "Abstract Motivation Specification Overview Type of proposal (Decision/ Election/ Treasury/ Constitution/ Admin) Scope Success Criteria (for Treasury proposals) Timeline/Budget (for Treasury proposals) References (for Treasury proposals) A Citizen who wishes to make a proposal should develop it in th"
576
+ },
577
+ {
578
+ "id": "continuumdao-proposals-and-voting",
579
+ "title": "ContinuumDAO Proposals and Voting",
580
+ "level": 3,
581
+ "excerpt": "Proposals should further the Vision and Mission of ContinuumDAO. If proposals do not clearly do this, then voters should seriously consider rejecting them. The same applies to proposals that did not follow the guidelines laid out here. Every veCTM holder will be able to vote, with no threshold to vo"
582
+ },
583
+ {
584
+ "id": "security-emergency-procedure",
585
+ "title": "Security/Emergency Procedure",
586
+ "level": 3,
587
+ "excerpt": "An Emergency Procedure to halt the Continuum network can be performed by the Committee. A Committee member should try to contact other members, so that at least 3 members agree on a course of action, which must be discussed and documented in the Forum under the private Governance Committee section ("
588
+ },
589
+ {
590
+ "id": "treasury",
591
+ "title": "Treasury",
592
+ "level": 3,
593
+ "excerpt": "The Treasury is the C3Governor contract on Ethereum. It is fully under the control of the voting process. If assets are transferred to the Committee, they may only spend Treasury assets as directed by DAO voting. The hot wallets are protected by the three CTMDAO Committee in the table below. Name Se"
594
+ },
595
+ {
596
+ "id": "continuumdao-ethics",
597
+ "title": "ContinuumDAO ethics",
598
+ "level": 3,
599
+ "excerpt": "Security Access This concerns access to social media accounts, admin access to the CTMDAO github, admin access to all areas of the Forum, other key CTMDAO related websites and root access to VPS machines. Admin signing rights for smart contracts will by governance functions in in the DAO Governor co"
600
+ }
601
+ ],
602
+ "excerpt": "Created time: 5th March 2026 This document is the Constitution of ContinuumDAO (CTMDAO). CTMDAO will consistently leverage the benefits of DAO governance and the unique features of MPC to ensure the stability and security of our network called the Continuum. Some of the rules and procedures in the C",
603
+ "url": "https://docs.continuumdao.org/ContinuumDAO/Governance/Constitution"
604
+ },
605
+ {
606
+ "path": "ContinuumDAO/Governance/CreatingProposal",
607
+ "title": "Creating a Proposal on ContinuumDAO",
608
+ "section": "Governance",
609
+ "headings": [
610
+ "Creating a Proposal on ContinuumDAO",
611
+ "Proposal types",
612
+ "Proposal configurations",
613
+ "Bravo (For / Against / Abstain)",
614
+ "Delta (Multiple-option)",
615
+ "Create a proposal (step by step)",
616
+ "Example — Treasury transfer (Bravo)",
617
+ "Share the proposal",
618
+ "Vote and execute",
619
+ "Bravo proposals",
620
+ "Delta proposals"
621
+ ],
622
+ "sections": [
623
+ {
624
+ "id": "creating-a-proposal-on-continuumdao",
625
+ "title": "Creating a Proposal on ContinuumDAO",
626
+ "level": 1,
627
+ "excerpt": "This guide covers: Proposal types and configurations (Bravo vs Delta) How to create a proposal in the Governance app How to share the proposal on the forum How to vote and execute proposals All governance actions — create , vote , and execute — are available at app.continuumdao.org/governance. The c"
628
+ },
629
+ {
630
+ "id": "proposal-types",
631
+ "title": "Proposal types",
632
+ "level": 2,
633
+ "excerpt": "When you create a proposal, choose the type that best matches its purpose (as defined in the Constitution): Type Use for Examples Decision General governance decisions; may or may not include on chain actions Join RAKDAO; replace a Committee member; add or remove a chain from C3Caller Election Multi"
634
+ },
635
+ {
636
+ "id": "proposal-configurations",
637
+ "title": "Proposal configurations",
638
+ "level": 2,
639
+ "excerpt": "Choose how votes are counted: Standard yes / no / abstain voting on a single set of on chain actions . If the proposal passes, those actions execute. Use Bravo for most Treasury , Admin , and Decision proposals with one clear outcome. <img src=\"/ media/governance proposal config bravo.png\" alt=\"\"/ E"
640
+ },
641
+ {
642
+ "id": "bravo-for-against-abstain",
643
+ "title": "Bravo (For / Against / Abstain)",
644
+ "level": 3,
645
+ "excerpt": "Standard yes / no / abstain voting on a single set of on chain actions . If the proposal passes, those actions execute. Use Bravo for most Treasury , Admin , and Decision proposals with one clear outcome. <img src=\"/ media/governance proposal config bravo.png\" alt=\"\"/ Each action specifies: Network "
646
+ },
647
+ {
648
+ "id": "delta-multiple-option",
649
+ "title": "Delta (Multiple-option)",
650
+ "level": 3,
651
+ "excerpt": "Weighted multi option voting: voters distribute vote power across options using coefficients. Each option has a label and its own list of actions . You set number of options and number of winners (winners ≥ 1 and &lt; options). Use Delta for Elections and any vote where several mutually exclusive (o"
652
+ },
653
+ {
654
+ "id": "create-a-proposal-step-by-step",
655
+ "title": "Create a proposal (step by step)",
656
+ "level": 2,
657
+ "excerpt": "1. Open Create Proposal . <img src=\"/ media/governance create proposal page.png\" alt=\"\"/ 2. Connect your wallet — the address must hold at least 1% of total vote power or 1000 veCTM vote power , whichever is higher (including delegation). 3. Title (up to 128 characters) — accurate summary; do not in"
658
+ },
659
+ {
660
+ "id": "example-treasury-transfer-bravo",
661
+ "title": "Example — Treasury transfer (Bravo)",
662
+ "level": 3,
663
+ "excerpt": "Transfer CTM from the Treasury to a recipient: Field Example Network Linea (or chain where CTM/Treasury lives) Target CTM token contract Value 0 Signature transfer(address,uint256) Inputs recipient address; amount (with unit, e.g. Ether) Validate/simulate in the app, then submit."
664
+ },
665
+ {
666
+ "id": "share-the-proposal",
667
+ "title": "Share the proposal",
668
+ "level": 2,
669
+ "excerpt": "Post on the Forum with: Proposal title and type Link to the proposal on app.continuumdao.org/governance Full proposal text from the template A Committee member can post on your behalf if needed. Community discussion continues during Temperature Check; Formal Vote opens automatically after 5 days."
670
+ },
671
+ {
672
+ "id": "vote-and-execute",
673
+ "title": "Vote and execute",
674
+ "level": 2,
675
+ "excerpt": "Open the Governance app, connect the wallet that holds veCTM (or delegated power), and open the proposal. Vote For , Against , or Abstain . Screenshot placeholder — add / media/governance vote bravo.png when ready (Bravo vote For/Against/Abstain). Allocate vote power across options with coefficients"
676
+ },
677
+ {
678
+ "id": "bravo-proposals",
679
+ "title": "Bravo proposals",
680
+ "level": 3,
681
+ "excerpt": "Vote For , Against , or Abstain . Screenshot placeholder — add / media/governance vote bravo.png when ready (Bravo vote For/Against/Abstain)."
682
+ },
683
+ {
684
+ "id": "delta-proposals",
685
+ "title": "Delta proposals",
686
+ "level": 3,
687
+ "excerpt": "Allocate vote power across options with coefficients (weighted split). The app builds the castVoteWithReasonAndParams payload. Screenshot placeholder — add / media/governance vote delta.png when ready (Delta multi option weighted vote). If a proposal passes , anyone can Execute it from the same app "
688
+ }
689
+ ],
690
+ "excerpt": "This guide covers: Proposal types and configurations (Bravo vs Delta) How to create a proposal in the Governance app How to share the proposal on the forum How to vote and execute proposals All governance actions — create , vote , and execute — are available at app.continuumdao.org/governance. The c",
691
+ "url": "https://docs.continuumdao.org/ContinuumDAO/Governance/CreatingProposal"
692
+ },
693
+ {
694
+ "path": "ContinuumDAO/Governance/HowToWriteAProposal",
695
+ "title": "How To Write a Proposal",
696
+ "section": "Governance",
697
+ "headings": [
698
+ "How to Write a Proposal",
699
+ "Phase 1: Discussion",
700
+ "Phase 2: Submission of the Proposal to On-Chain Governance",
701
+ "Phase 3: Formal Vote",
702
+ "Proposal Format",
703
+ "Proposal Template",
704
+ "Necessary Elements of an Effective Proposal"
705
+ ],
706
+ "sections": [
707
+ {
708
+ "id": "how-to-write-a-proposal",
709
+ "title": "How to Write a Proposal",
710
+ "level": 2,
711
+ "excerpt": "ContinuumDAO is entirely controlled by veCTM holders. veCTM holders have full governance rights in ContinuumDAO including controlling the Treasury. All proposals need to go through a three step process as described below. When a proposal is passed, the changes will either be implemented directly thr"
712
+ },
713
+ {
714
+ "id": "phase-1-discussion",
715
+ "title": "Phase 1: Discussion",
716
+ "level": 3,
717
+ "excerpt": "The genesis of your proposal idea could be in ContinuumDAO’s Telegram channel or a Guild, but please initiate discussion in the Forum. This should be in the Ideas & Suggestions section in the Forum. From there, you should collect feedback from the community and then use this to create your draft pro"
718
+ },
719
+ {
720
+ "id": "phase-2-submission-of-the-proposal-to-on-chain-governance",
721
+ "title": "Phase 2: Submission of the Proposal to On-Chain Governance",
722
+ "level": 3,
723
+ "excerpt": "After the discussion period, which could take a few days or a week or two you can proceed to the Formal Vote. The proposer will need to verify that their wallet address has at least 1% of the Vote Power, or 1000 veCTM Vote Power, whichever is higher. This can be their own voting power, or can includ"
724
+ },
725
+ {
726
+ "id": "phase-3-formal-vote",
727
+ "title": "Phase 3: Formal Vote",
728
+ "level": 3,
729
+ "excerpt": "veCTM holders vote in the Governance app. Connect your wallet, review the proposal, and cast your vote during the 10 day Formal Vote period. If the proposal passes, anyone can Execute it from the same app."
730
+ },
731
+ {
732
+ "id": "proposal-format",
733
+ "title": "Proposal Format",
734
+ "level": 2,
735
+ "excerpt": "Follow the proposal template below and make sure that it has all of these elements please: Abstract (summary of no more than 200 words) Motivation (what do your team hope to achieve?) Specification Overview (please include the background of who you and your team are) Type of proposal (choose one: De"
736
+ },
737
+ {
738
+ "id": "proposal-template",
739
+ "title": "Proposal Template",
740
+ "level": 4,
741
+ "excerpt": "Abstract (summary of no more than 200 words) Motivation (what do your team hope to achieve?) Specification Overview (please include the background of who you and your team are) Type of proposal (choose one: Decision , Election , Treasury , Constitution , or Admin — see Creating an on chain Proposal)"
742
+ },
743
+ {
744
+ "id": "necessary-elements-of-an-effective-proposal",
745
+ "title": "Necessary Elements of an Effective Proposal",
746
+ "level": 4,
747
+ "excerpt": "Clear Objectives A well structured proposal should begin by clearly stating its objectives. What problem does it aim to solve, or what opportunity does it seek to capitalize on? Clarity in objectives is essential for communities to understand the proposal's purpose. Comprehensive Details Proposals s"
748
+ }
749
+ ],
750
+ "excerpt": "ContinuumDAO is entirely controlled by veCTM holders. veCTM holders have full governance rights in ContinuumDAO including controlling the Treasury. All proposals need to go through a three step process as described below. When a proposal is passed, the changes will either be implemented directly thr",
751
+ "url": "https://docs.continuumdao.org/ContinuumDAO/Governance/HowToWriteAProposal"
752
+ },
753
+ {
754
+ "path": "ContinuumDAO/Introduction",
755
+ "title": "Introduction",
756
+ "section": "Get Started",
757
+ "headings": [
758
+ "Introduction",
759
+ "Related"
760
+ ],
761
+ "sections": [
762
+ {
763
+ "id": "introduction",
764
+ "title": "Introduction",
765
+ "level": 2,
766
+ "excerpt": "ContinuumDAO offers an essential service: a state of the art peer to peer node based Multi Party Computation network for blockchain inter operability and MPC wallets. Our smart contracts have full multi chain inter operability with many EVMs and soon with non EVMs. This technology runs on the Contin"
767
+ },
768
+ {
769
+ "id": "related",
770
+ "title": "Related",
771
+ "level": 3,
772
+ "excerpt": "MPA wallet Overview MPC Accept/Reject loop Install a node What is MPC? C3Caller Overview Our White Paper"
773
+ }
774
+ ],
775
+ "excerpt": "ContinuumDAO offers an essential service: a state of the art peer to peer node based Multi Party Computation network for blockchain inter operability and MPC wallets. Our smart contracts have full multi chain inter operability with many EVMs and soon with non EVMs. This technology runs on the Contin",
776
+ "url": "https://docs.continuumdao.org/ContinuumDAO/Introduction"
777
+ },
778
+ {
779
+ "path": "ContinuumDAO/MPAWallet/AICharting",
780
+ "title": "AI charting",
781
+ "section": "Using an MPA wallet",
782
+ "headings": [
783
+ "AI charting",
784
+ "What you can do",
785
+ "OHLCV data sources",
786
+ "Default chart",
787
+ "Common customizations",
788
+ "Analysis overlays vs default chart",
789
+ "Related"
790
+ ],
791
+ "sections": [
792
+ {
793
+ "id": "ai-charting",
794
+ "title": "AI charting",
795
+ "level": 2,
796
+ "excerpt": "MPA wallet can plot candlestick (OHLCV) charts from the built in AI agent — in the node app Agent chat and on phones via the Telegram Mini App. Ask the agent to load a market (for example “plot ETH 4H for the last 30 days”) and open an interactive chart. Scroll and zoom the candles; default overlays"
797
+ },
798
+ {
799
+ "id": "what-you-can-do",
800
+ "title": "What you can do",
801
+ "level": 3,
802
+ "excerpt": "Ask the agent to load a market (for example “plot ETH 4H for the last 30 days”) and open an interactive chart. Scroll and zoom the candles; default overlays typically include a moving average (EMA), RSI, and a volume pane when the source provides volume. After analysis, add or remove indicators and "
803
+ },
804
+ {
805
+ "id": "ohlcv-data-sources",
806
+ "title": "OHLCV data sources",
807
+ "level": 3,
808
+ "excerpt": "Source Kind How it is loaded Notes / keys Hyperliquid Perp DeFi protocol pack ( hyperliquid ) Live mid prices when chart live binding is enabled. No API key for read/chart. Arcus Perp DeFi protocol pack ( arcus ) Robinhood Chain. Live mids when enabled. Arcus spot (stock tokens) Spot Same arcus pack"
809
+ },
810
+ {
811
+ "id": "default-chart",
812
+ "title": "Default chart",
813
+ "level": 3,
814
+ "excerpt": "When the agent opens a candlestick chart with prepare chart from rows and you have not asked for custom indicators, the node applies these built in defaults : Pane Indicator Default Main (price) EMA period 50 Below price Volume histogram when the OHLCV rows include volume Below volume RSI period 14 "
815
+ },
816
+ {
817
+ "id": "common-customizations",
818
+ "title": "Common customizations",
819
+ "level": 4,
820
+ "excerpt": "Candles and volume only (no EMA or RSI): Tell the agent, or add to chart defaults under the built in defaults section: json { \"title\": \"ETH PERP 1H — last 7d\", \"toolResult\": { \"... full OHLCV fetch ...\" }, \"options\": { \"skipDefaultOverlays\": true } } Replace defaults with SMA 20 on price and MACD be"
821
+ },
822
+ {
823
+ "id": "analysis-overlays-vs-default-chart",
824
+ "title": "Analysis overlays vs default chart",
825
+ "level": 4,
826
+ "excerpt": "Running technical analysis does not redraw the default chart automatically. After analysis, you can apply overlays from the chart UI or ask the agent to merge analysis specific overlays (Donchian channels, Supertrend trail, Ichimoku cloud, Z score pane, and similar). Periods for those overlays often"
827
+ },
828
+ {
829
+ "id": "related",
830
+ "title": "Related",
831
+ "level": 3,
832
+ "excerpt": "Technical analysis — analysis menu on OHLCV candles Trade ideas MPC Accept/Reject loop Configure the AI harness Telegram Mini App DeFi protocol support"
833
+ }
834
+ ],
835
+ "excerpt": "MPA wallet can plot candlestick (OHLCV) charts from the built in AI agent — in the node app Agent chat and on phones via the Telegram Mini App. Ask the agent to load a market (for example “plot ETH 4H for the last 30 days”) and open an interactive chart. Scroll and zoom the candles; default overlays",
836
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/AICharting"
837
+ },
838
+ {
839
+ "path": "ContinuumDAO/MPAWallet/AIHarness/Configure",
840
+ "title": "Configure the AI harness",
841
+ "section": "AI harness",
842
+ "headings": [
843
+ "Configure the AI harness",
844
+ "1. Link an LLM (required for the agent)",
845
+ "2. Set preferred KeyGen and default signer",
846
+ "3. Variables, MCP servers, and default search",
847
+ "4. Optional — Telegram on your phone",
848
+ "5. Optional next",
849
+ "Related"
850
+ ],
851
+ "sections": [
852
+ {
853
+ "id": "configure-the-ai-harness",
854
+ "title": "Configure the AI harness",
855
+ "level": 2,
856
+ "excerpt": "This checklist is optional . You can run an MPA wallet entirely from the node app (Groups, KeyGens, multi sign) without an AI agent. The MPA wallet is AI first , though, so most users will want to complete these steps once a KeyGen exists. Use this flow after you have Configured Nodes, a Group, and "
857
+ },
858
+ {
859
+ "id": "1-link-an-llm-required-for-the-agent",
860
+ "title": "1. Link an LLM (required for the agent)",
861
+ "level": 3,
862
+ "excerpt": "1. Open AI Agent → Provider . 2. Choose a provider and model. 3. Set the API key (stored via Variables when the UI prompts you). Without an LLM, Agent chat, Telegram, cron, and webhooks cannot run turns."
863
+ },
864
+ {
865
+ "id": "2-set-preferred-keygen-and-default-signer",
866
+ "title": "2. Set preferred KeyGen and default signer",
867
+ "level": 3,
868
+ "excerpt": "Preferred KeyGen — which multi agree KeyGen the agent uses by default for compose, plan, and wallet actions. Set it under AI Agent → Provider , or Set it from the Agent chat window when the UI asks you to pick one. Preferred / default Ed25519 signer — which management key the harness uses to authent"
869
+ },
870
+ {
871
+ "id": "3-variables-mcp-servers-and-default-search",
872
+ "title": "3. Variables, MCP servers, and default search",
873
+ "level": 3,
874
+ "excerpt": "1. Open AI Agent → MCP Servers . 2. Ensure the built in continuum (wallet) server is enabled. 3. Add catalog or third party MCP servers as needed (market data, DeFi, browser / search tools, and so on). 4. Open AI Agent → Variables and enter API keys and secrets for those servers (and the LLM if prom"
875
+ },
876
+ {
877
+ "id": "4-optional-telegram-on-your-phone",
878
+ "title": "4. Optional — Telegram on your phone",
879
+ "level": 3,
880
+ "excerpt": "To chat with the same harness from Telegram: 1. Add the Telegram webhook from AI Agent → Webhooks . 2. Put TELEGRAM BOT TOKEN , the webhook secret, and NGROK AUTHTOKEN in Variables as the UI requires. For a paid ngrok subscription (Mini App charts), also set NGROK PAID PLAN=true . 3. Enable an ngrok"
881
+ },
882
+ {
883
+ "id": "5-optional-next",
884
+ "title": "5. Optional next",
885
+ "level": 3,
886
+ "excerpt": "Skills — steer agent behaviour ( AI Agent → Skills ). Cron — scheduled agent turns ( AI Agent → Cron ). Other webhooks — GitHub, Stripe, and similar ( AI Agent → Webhooks ). Workspace — upload or edit scripts and data on the node ( AI Agent → Workspace ); useful for Foundry script batches and JSON i"
887
+ },
888
+ {
889
+ "id": "related",
890
+ "title": "Related",
891
+ "level": 3,
892
+ "excerpt": "MPC Accept/Reject loop AI harness overview Default Ed25519 signer Telegram Mini App KeyGens Trade ideas Overview Operator detail: Agent hooks"
893
+ }
894
+ ],
895
+ "excerpt": "This checklist is optional . You can run an MPA wallet entirely from the node app (Groups, KeyGens, multi sign) without an AI agent. The MPA wallet is AI first , though, so most users will want to complete these steps once a KeyGen exists. Use this flow after you have Configured Nodes, a Group, and ",
896
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/AIHarness/Configure"
897
+ },
898
+ {
899
+ "path": "ContinuumDAO/MPAWallet/AIHarness/Overview",
900
+ "title": "Overview",
901
+ "section": "AI harness",
902
+ "headings": [
903
+ "AI harness overview",
904
+ "When to configure",
905
+ "How you talk to it",
906
+ "What it can do",
907
+ "Chat and Plan modes",
908
+ "Built-in MCP (wallet)",
909
+ "Built-in DeFi / web3 protocols",
910
+ "Charting and technical analysis",
911
+ "Third-party MCP servers",
912
+ "Skill files",
913
+ "Workspace (scripts and data)",
914
+ "Cron (scheduled jobs)",
915
+ "Webhooks",
916
+ "Signing and safety",
917
+ "Related"
918
+ ],
919
+ "sections": [
920
+ {
921
+ "id": "ai-harness-overview",
922
+ "title": "AI harness overview",
923
+ "level": 2,
924
+ "excerpt": "The MPA wallet is AI first , and every node includes a dedicated AI agent harness . You do not install a separate agent product — the harness is part of the node. Configuring it is optional . You can control Groups, KeyGens, and signing entirely from the node app UI. For most users, linking an LLM a"
925
+ },
926
+ {
927
+ "id": "when-to-configure",
928
+ "title": "When to configure",
929
+ "level": 3,
930
+ "excerpt": "If you want the agent path, configure the harness after you have Configured Nodes, a Group, and at least one KeyGen. The agent needs a preferred KeyGen to act on the shared wallet. Optional next step: Configure the AI harness. If you still need a second node, Group, or KeyGen, start with Install a n"
931
+ },
932
+ {
933
+ "id": "how-you-talk-to-it",
934
+ "title": "How you talk to it",
935
+ "level": 3,
936
+ "excerpt": "Node app — Agent chat in continuumdao node app / MPA wallet Telegram (optional) — same harness via a webhook; see Telegram Mini App Both channels use the same tools, preferred KeyGen, and default Ed25519 management signer."
937
+ },
938
+ {
939
+ "id": "what-it-can-do",
940
+ "title": "What it can do",
941
+ "level": 3,
942
+ "excerpt": "Interactive chat for questions and actions. Plan mode lets the agent propose multi step work, then execute when you approve. The built in continuum MCP server exposes wallet and node tools: groups, KeyGens, sign requests, messaging, and related management actions. Protocol interactions (swaps, lendi"
943
+ },
944
+ {
945
+ "id": "chat-and-plan-modes",
946
+ "title": "Chat and Plan modes",
947
+ "level": 4,
948
+ "excerpt": "Interactive chat for questions and actions. Plan mode lets the agent propose multi step work, then execute when you approve."
949
+ },
950
+ {
951
+ "id": "built-in-mcp-wallet",
952
+ "title": "Built-in MCP (wallet)",
953
+ "level": 4,
954
+ "excerpt": "The built in continuum MCP server exposes wallet and node tools: groups, KeyGens, sign requests, messaging, and related management actions."
955
+ },
956
+ {
957
+ "id": "built-in-defi-web3-protocols",
958
+ "title": "Built-in DeFi / web3 protocols",
959
+ "level": 4,
960
+ "excerpt": "Protocol interactions (swaps, lending, perps, bridges, and similar) run through the node’s DeFi / MCP stack — still under your Group’s MPC threshold for on chain signing via the MPC Accept/Reject loop. Full list, capabilities, and KYC / API key requirements: DeFi protocol support."
961
+ },
962
+ {
963
+ "id": "charting-and-technical-analysis",
964
+ "title": "Charting and technical analysis",
965
+ "level": 4,
966
+ "excerpt": "Candlestick charts with live updates, interactive overlays, analysis menus, and PRIMARY trade ideas (Agent chat and Telegram Mini App): AI charting, Technical analysis, and Trade ideas."
967
+ },
968
+ {
969
+ "id": "third-party-mcp-servers",
970
+ "title": "Third-party MCP servers",
971
+ "level": 4,
972
+ "excerpt": "Add other MCP servers under Node → AI Agent → MCP Servers (catalog or custom). Store their API keys in Variables ."
973
+ },
974
+ {
975
+ "id": "skill-files",
976
+ "title": "Skill files",
977
+ "level": 4,
978
+ "excerpt": "Bundled and custom skills steer how the agent behaves for common tasks."
979
+ },
980
+ {
981
+ "id": "workspace-scripts-and-data",
982
+ "title": "Workspace (scripts and data)",
983
+ "level": 4,
984
+ "excerpt": "Node → AI Agent → Workspace lets you browse and manage the node user folder : create directories, add or edit files, and download copies locally. Use it to upload Foundry scripts , JSON inputs, and other artefacts the agent or Foundry MCP can run — see Foundry script — Workspace tab."
985
+ },
986
+ {
987
+ "id": "cron-scheduled-jobs",
988
+ "title": "Cron (scheduled jobs)",
989
+ "level": 4,
990
+ "excerpt": "Run agent turns on a schedule from AI Agent → Cron ."
991
+ },
992
+ {
993
+ "id": "webhooks",
994
+ "title": "Webhooks",
995
+ "level": 4,
996
+ "excerpt": "Inbound HTTP hooks wake the same agent. Telegram is the usual phone path — see Telegram Mini App."
997
+ },
998
+ {
999
+ "id": "signing-and-safety",
1000
+ "title": "Signing and safety",
1001
+ "level": 3,
1002
+ "excerpt": "Management actions (calling the node API) use the node’s default Ed25519 signer. On chain control still uses MPC . The node never holds the full wallet private key — only threshold shares. Human in the loop circuit breaker — in the usual personal setup, pair an AI assisted node with a second node yo"
1003
+ },
1004
+ {
1005
+ "id": "related",
1006
+ "title": "Related",
1007
+ "level": 3,
1008
+ "excerpt": "MPC Accept/Reject loop Configure the AI harness Telegram Mini App Default Ed25519 signer Trade ideas Overview Operator detail: Agent hooks"
1009
+ }
1010
+ ],
1011
+ "excerpt": "The MPA wallet is AI first , and every node includes a dedicated AI agent harness . You do not install a separate agent product — the harness is part of the node. Configuring it is optional . You can control Groups, KeyGens, and signing entirely from the node app UI. For most users, linking an LLM a",
1012
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/AIHarness/Overview"
1013
+ },
1014
+ {
1015
+ "path": "ContinuumDAO/MPAWallet/AIHarness/TelegramMiniApp",
1016
+ "title": "Telegram Mini App",
1017
+ "section": "AI harness",
1018
+ "headings": [
1019
+ "Telegram Mini App",
1020
+ "What you need",
1021
+ "Setup (high level)",
1022
+ "Free vs paid ngrok",
1023
+ "Using the Mini App",
1024
+ "Related"
1025
+ ],
1026
+ "sections": [
1027
+ {
1028
+ "id": "telegram-mini-app",
1029
+ "title": "Telegram Mini App",
1030
+ "level": 2,
1031
+ "excerpt": "Talk to your node’s built in AI agent from Telegram on your phone. This is the same harness as Agent chat in the node app — not a separate agent. Harness overview: AI harness overview. Finish Configure the AI harness (at least LLM + preferred KeyGen) before relying on Telegram for wallet actions. A "
1032
+ },
1033
+ {
1034
+ "id": "what-you-need",
1035
+ "title": "What you need",
1036
+ "level": 3,
1037
+ "excerpt": "A running node with the AI harness and an LLM linked ( AI Agent → Provider ) A Telegram bot from @BotFather An ngrok account so Telegram can reach your node’s webhook listener (a stock node does not expose hooks on the public internet) continuumdao node app attached to the node: AI Agent → Webhooks "
1038
+ },
1039
+ {
1040
+ "id": "setup-high-level",
1041
+ "title": "Setup (high level)",
1042
+ "level": 3,
1043
+ "excerpt": "1. In AI Agent → Webhooks , add the telegram updates template from the repository catalog (sign with your management key when prompted). 2. In Variables , set TELEGRAM BOT TOKEN , the webhook secret ( WEBHOOK SECRET ), and NGROK AUTHTOKEN for the tunnel. If you use a paid ngrok plan (for interactive"
1044
+ },
1045
+ {
1046
+ "id": "free-vs-paid-ngrok",
1047
+ "title": "Free vs paid ngrok",
1048
+ "level": 3,
1049
+ "excerpt": "Basic usage does not require a paid ngrok plan. A free Agent Endpoint is enough for bot chat. Capability Free ngrok Paid ngrok (reserved domain) Bot chat, analysis menus, trade ideas / builds Yes Yes Chart preview in chat (text / sparkline) Yes Yes Interactive Open chart Telegram Mini App No — ngrok"
1050
+ },
1051
+ {
1052
+ "id": "using-the-mini-app",
1053
+ "title": "Using the Mini App",
1054
+ "level": 3,
1055
+ "excerpt": "After a plot / “show chart” with a compatible tunnel, tap Open chart to scroll and zoom (live ticks where supported). Tap New chat on a bot reply, or send /new / new chat , to reset the Telegram conversation session (same idea as deleting a conversation under AI Agent → Conversations )."
1056
+ },
1057
+ {
1058
+ "id": "related",
1059
+ "title": "Related",
1060
+ "level": 3,
1061
+ "excerpt": "AI harness overview Configure the AI harness AI charting Technical analysis Trade ideas Default Ed25519 signer Operator guide: Telegram webhook via ngrok"
1062
+ }
1063
+ ],
1064
+ "excerpt": "Talk to your node’s built in AI agent from Telegram on your phone. This is the same harness as Agent chat in the node app — not a separate agent. Harness overview: AI harness overview. Finish Configure the AI harness (at least LLM + preferred KeyGen) before relying on Telegram for wallet actions. A ",
1065
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/AIHarness/TelegramMiniApp"
1066
+ },
1067
+ {
1068
+ "path": "ContinuumDAO/MPAWallet/AttachYourNode",
1069
+ "title": "Attach your node",
1070
+ "section": "Using an MPA wallet",
1071
+ "headings": [
1072
+ "Attach your node",
1073
+ "Option 1: Browser HTTPS",
1074
+ "Option 2: Node hosted app (local PC)",
1075
+ "Option 3: Node hosted app (SSH tunnel)",
1076
+ "Hosted app over an SSH tunnel",
1077
+ "Related"
1078
+ ],
1079
+ "sections": [
1080
+ {
1081
+ "id": "attach-your-node",
1082
+ "title": "Attach your node",
1083
+ "level": 2,
1084
+ "excerpt": "Open mpa.continuumdao.org. Your browser talks to your node — ContinuumDAO does not relay day to day control traffic. For management signing (Accept/Reject on multi sign, backups, KeyGen actions), prefer devices not used for everyday browsing ; the most secure pattern is a separate dedicated device p"
1085
+ },
1086
+ {
1087
+ "id": "option-1-browser-https",
1088
+ "title": "Option 1: Browser HTTPS",
1089
+ "level": 3,
1090
+ "excerpt": "Attach over HTTPS to your node’s read port. You need a short lived read JWT and a browser that trusts the node’s self signed browser.crt . Recommended order: attach via a Node hosted app option first (see below), open Node → Fetch Self Signed Web Cert , download browser.crt , import it into your bro"
1091
+ },
1092
+ {
1093
+ "id": "option-2-node-hosted-app-local-pc",
1094
+ "title": "Option 2: Node hosted app (local PC)",
1095
+ "level": 3,
1096
+ "excerpt": "Use when the node runs on the same PC as your browser. 1. Select Node hosted app (local PC) . 2. Your browser opens the local node app at http://127.0.0.1:3333 on the same path (e.g. /multi sign stays /multi sign ). 3. No public IP field and no SSH command. 4. On the local app, attach with plain HTT"
1097
+ },
1098
+ {
1099
+ "id": "option-3-node-hosted-app-ssh-tunnel",
1100
+ "title": "Option 3: Node hosted app (SSH tunnel)",
1101
+ "level": 3,
1102
+ "excerpt": "Use when the node runs on a remote VPS (or another machine you reach over SSH). This is a good default option to connect to a remote nodes, e.g. on a VPS. It does not require to have a Let's Encrypt type of cert for https to be installed, or to import a self signed cert into your browser, which can "
1103
+ },
1104
+ {
1105
+ "id": "hosted-app-over-an-ssh-tunnel",
1106
+ "title": "Hosted app over an SSH tunnel",
1107
+ "level": 3,
1108
+ "excerpt": "If Browser HTTPS is hidden for your region, choose Node hosted app (local PC) or Node hosted app (SSH tunnel) only. Acknowledge the compliance banner, then follow the steps above. <img src=\"/ media/attach option ssh tunnel.png\" alt=\"\" /"
1109
+ },
1110
+ {
1111
+ "id": "related",
1112
+ "title": "Related",
1113
+ "level": 3,
1114
+ "excerpt": "MPC Accept/Reject loop Install a node Overview Running an MPC Node Backup and restoration"
1115
+ }
1116
+ ],
1117
+ "excerpt": "Open mpa.continuumdao.org. Your browser talks to your node — ContinuumDAO does not relay day to day control traffic. For management signing (Accept/Reject on multi sign, backups, KeyGen actions), prefer devices not used for everyday browsing ; the most secure pattern is a separate dedicated device p",
1118
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/AttachYourNode"
1119
+ },
1120
+ {
1121
+ "path": "ContinuumDAO/MPAWallet/BackupAndRestoration",
1122
+ "title": "Backup and restoration",
1123
+ "section": "Using an MPA wallet",
1124
+ "headings": [
1125
+ "Backup and restoration",
1126
+ "Back up the bootstrap public and private keys to your PC",
1127
+ "Spare nodes: surviving the loss of one machine",
1128
+ "Recreate a node using the bootstrap key",
1129
+ "Backup the node database",
1130
+ "Steps (create + download)",
1131
+ "Restore the node database",
1132
+ "What to store safely (checklist)",
1133
+ "Related"
1134
+ ],
1135
+ "sections": [
1136
+ {
1137
+ "id": "backup-and-restoration",
1138
+ "title": "Backup and restoration",
1139
+ "level": 2,
1140
+ "excerpt": "Every MPA node has a bootstrap Ed25519 key pair. The public half is PublicMgtKey in the node config. With deterministic node identity enabled (normal installs), the node’s public Node Key is derived from that bootstrap material. That is how other Group members recognise “you” after a rebuild: same b"
1141
+ },
1142
+ {
1143
+ "id": "back-up-the-bootstrap-public-and-private-keys-to-your-pc",
1144
+ "title": "Back up the bootstrap public and private keys to your PC",
1145
+ "level": 3,
1146
+ "excerpt": "Do this soon after install (and again if you ever rotate recovery copies). Prefer attaching over Browser HTTPS or Node hosted app — fetching the bootstrap private seed is blocked on plain remote HTTP. 1. Open Node → Database . 2. Open the Bootstrap Key tab. 3. Click Fetch bootstrap key and sign the "
1147
+ },
1148
+ {
1149
+ "id": "spare-nodes-surviving-the-loss-of-one-machine",
1150
+ "title": "Spare nodes: surviving the loss of one machine",
1151
+ "level": 3,
1152
+ "excerpt": "Backup of bootstrap + database restores one node’s identity and local data. Separately, Group design protects the KeyGen and its assets : If you run spare nodes in the same Group / KeyGen (for example a second home PC, a second VPS, or a friend’s node) with a threshold that can still be met when one"
1153
+ },
1154
+ {
1155
+ "id": "recreate-a-node-using-the-bootstrap-key",
1156
+ "title": "Recreate a node using the bootstrap key",
1157
+ "level": 3,
1158
+ "excerpt": "Use this when the machine is gone or you want the same identity on a new host / IP. 1. Install a fresh node (Install a node). 2. Ensure the new node is configured with the same PublicMgtKey (64 hex bootstrap public) as before — for example via the installer / provision node.sh public mgt key <64 hex"
1159
+ },
1160
+ {
1161
+ "id": "backup-the-node-database",
1162
+ "title": "Backup the node database",
1163
+ "level": 3,
1164
+ "excerpt": "The node database holds confidential local state for this operator, including (among other things): Groups and KeyGen participation / local share material as stored on this node Transaction / multi sign history visible to this node Contacts / known addresses Chain, token, and related wallet configur"
1165
+ },
1166
+ {
1167
+ "id": "steps-create-download",
1168
+ "title": "Steps (create + download)",
1169
+ "level": 4,
1170
+ "excerpt": "1. Attach with MetaMask or Ed25519 management keys ( Browser HTTPS or Node hosted app recommended for download). 2. Confirm the bootstrap private key is present on the node ( Bootstrap Key tab / fetch works). Database encryption requires it. 3. Open Backup Database . 4. Choose scope if offered (all "
1171
+ },
1172
+ {
1173
+ "id": "restore-the-node-database",
1174
+ "title": "Restore the node database",
1175
+ "level": 3,
1176
+ "excerpt": "Restoring replaces the Mongo database on the target node with the snapshot. Use a node that already has the matching bootstrap private key installed (same identity that created the backup). 1. Recreate / prepare the node and install the bootstrap private key as in Recreate a node using the bootstrap"
1177
+ },
1178
+ {
1179
+ "id": "what-to-store-safely-checklist",
1180
+ "title": "What to store safely (checklist)",
1181
+ "level": 3,
1182
+ "excerpt": "Item Why Bootstrap public ( PublicMgtKey ) Needed when provisioning a replacement node with the same identity Bootstrap private seed Decrypts DB backups; installs identity on a new host; often required for agent / management fallback Encrypted database backup file(s) Restores Groups, KeyGen local st"
1183
+ },
1184
+ {
1185
+ "id": "related",
1186
+ "title": "Related",
1187
+ "level": 3,
1188
+ "excerpt": "MPC Accept/Reject loop Install a node Default Ed25519 signer Overview — TSS roles and spare nodes Configured Nodes Eject to Private Key Technical: CONFIGURING ED25519 KEYS.md"
1189
+ }
1190
+ ],
1191
+ "excerpt": "Every MPA node has a bootstrap Ed25519 key pair. The public half is PublicMgtKey in the node config. With deterministic node identity enabled (normal installs), the node’s public Node Key is derived from that bootstrap material. That is how other Group members recognise “you” after a rebuild: same b",
1192
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/BackupAndRestoration"
1193
+ },
1194
+ {
1195
+ "path": "ContinuumDAO/MPAWallet/ComposeTransactionFlow",
1196
+ "title": "KeyGen address from Compose tab; RPC from Configure blockchains",
1197
+ "section": "Using an MPA wallet",
1198
+ "headings": [
1199
+ "Compose transaction flow",
1200
+ "Manual compose",
1201
+ "Select KeyGen and chain",
1202
+ "Add one or more transaction steps",
1203
+ "Edit and cycle through steps",
1204
+ "Validate and Simulate",
1205
+ "Submit — OK creates the multi-sign request",
1206
+ "Foundry script",
1207
+ "Upload scripts and data (Workspace tab)",
1208
+ "1. Write the script",
1209
+ "2. Dry-run with forge (no broadcast)",
1210
+ "3. Import into Compose",
1211
+ "Agent / API path (no file upload)",
1212
+ "Example command summary",
1213
+ "KeyGen address from Compose tab; RPC from Configure blockchains",
1214
+ "No --broadcast → import broadcast/.../dry-run/run-latest.json in the node app",
1215
+ "Bump / remove — mempool transactions",
1216
+ "Bump",
1217
+ "Remove",
1218
+ "Related"
1219
+ ],
1220
+ "sections": [
1221
+ {
1222
+ "id": "compose-transaction-flow",
1223
+ "title": "Compose transaction flow",
1224
+ "level": 2,
1225
+ "excerpt": "This page describes how an originator builds a multi sign request (single transaction or batch ) before it enters the MPC Accept/Reject loop. The same loop applies no matter how the request was created. How the originator creates the request Typical use Manual compose Hand built transfers, custom co"
1226
+ },
1227
+ {
1228
+ "id": "manual-compose",
1229
+ "title": "Manual compose",
1230
+ "level": 3,
1231
+ "excerpt": "Use the node app Compose tab when you want to build transactions field by field in the UI. 1. Choose the KeyGen that will sign (must be multi agree for MPA custody). 2. Choose the blockchain (network) for this request. 3. Optionally set Purpose text and Custom Chain config (gas profile, RPC gateway,"
1232
+ },
1233
+ {
1234
+ "id": "select-keygen-and-chain",
1235
+ "title": "Select KeyGen and chain",
1236
+ "level": 4,
1237
+ "excerpt": "1. Choose the KeyGen that will sign (must be multi agree for MPA custody). 2. Choose the blockchain (network) for this request. 3. Optionally set Purpose text and Custom Chain config (gas profile, RPC gateway, gas multiplier) — peers see these on Join ; see Creating a multi sign request."
1238
+ },
1239
+ {
1240
+ "id": "add-one-or-more-transaction-steps",
1241
+ "title": "Add one or more transaction steps",
1242
+ "level": 4,
1243
+ "excerpt": "Each step is one transaction (one signature) in the eventual batch. Single step — the simplest case is an ERC20 transfer : token contract, recipient, amount. That is the same example used in Join — threshold Accept / Reject and Execute — MPC signing and broadcast. Multiple steps — add further steps "
1244
+ },
1245
+ {
1246
+ "id": "edit-and-cycle-through-steps",
1247
+ "title": "Edit and cycle through steps",
1248
+ "level": 4,
1249
+ "excerpt": "The compose screen lists every step in the batch. Select a step to edit its fields (contract, method, parameters, value, gas hints for that step). Cycle through steps with previous/next controls so you can review each transaction before submitting. Fix errors on any step before Validate — later step"
1250
+ },
1251
+ {
1252
+ "id": "validate-and-simulate",
1253
+ "title": "Validate and Simulate",
1254
+ "level": 4,
1255
+ "excerpt": "Before OK creates the multi sign request, run checks on the current step or on the whole batch (as the UI offers): Action What it does Validate Local and node side checks without broadcasting: required fields present, addresses and amounts well formed, KeyGen type matches the chain, nonce sequence c"
1256
+ },
1257
+ {
1258
+ "id": "submit-ok-creates-the-multi-sign-request",
1259
+ "title": "Submit — OK creates the multi-sign request",
1260
+ "level": 4,
1261
+ "excerpt": "When every step looks correct, confirm OK (or Create sign request ). The originator management signs the submission. The node creates the multi sign request and publishes it to the KeyGen. From here the flow continues on Join. <! Screenshot placeholder: replace media/mpc compose transaction flow.png"
1262
+ },
1263
+ {
1264
+ "id": "foundry-script",
1265
+ "title": "Foundry script",
1266
+ "level": 3,
1267
+ "excerpt": "Use a Foundry script when the batch is easier to express in Solidity than in the Compose form — for example: Deploy a contract with the KeyGen as owner/admin, then call admin only functions in the same batch Conditional logic in run() (read on chain state, branch, build different calldata) Bulk oper"
1268
+ },
1269
+ {
1270
+ "id": "upload-scripts-and-data-workspace-tab",
1271
+ "title": "Upload scripts and data (Workspace tab)",
1272
+ "level": 4,
1273
+ "excerpt": "Node → AI Agent → Workspace manages the node’s writable user folder (on the host this is the user folder/ directory beside your node config; in the container it is /app/user folder ). Use it to add or edit scripts and data on the node without SSH: Browse — skills/ , scripts/ , data/ , plans/ , and o"
1274
+ },
1275
+ {
1276
+ "id": "1-write-the-script",
1277
+ "title": "1. Write the script",
1278
+ "level": 4,
1279
+ "excerpt": "Create a standard Foundry Script (see Foundry Book — Scripts). Use the KeyGen’s Ethereum address as the on chain from / broadcast sender: solidity // SPDX License Identifier: MIT pragma solidity ^0.8.24; import {Script} from \"forge std/Script.sol\"; contract DeployAndConfigure is Script { function ru"
1280
+ },
1281
+ {
1282
+ "id": "2-dry-run-with-forge-no-broadcast",
1283
+ "title": "2. Dry-run with forge (no broadcast)",
1284
+ "level": 4,
1285
+ "excerpt": "Run the script against a live RPC for the target chain. Set sender to the KeyGen’s Ethereum address (shown on the Compose tab). Do not pass broadcast — MPC signing and broadcast happen later on Execute , not from Foundry. bash export MPC ADDRESS=0xYourKeyGenEthereumAddress forge script script/Deploy"
1286
+ },
1287
+ {
1288
+ "id": "3-import-into-compose",
1289
+ "title": "3. Import into Compose",
1290
+ "level": 4,
1291
+ "excerpt": "On the Compose tab (with the correct KeyGen selected): 1. Click Import from Foundry broadcast . 2. Select run latest.json from the path above. 3. If nonces in the file are stale (lower than the KeyGen’s pending nonce on chain), confirm Yes to refresh nonces from the chain, or re run the script. 4. O"
1292
+ },
1293
+ {
1294
+ "id": "agent-api-path-no-file-upload",
1295
+ "title": "Agent / API path (no file upload)",
1296
+ "level": 4,
1297
+ "excerpt": "The AI agent can skip the upload dialog and call the continuum MCP tool create forge multi sign request with the parsed broadcast JSON, KeyGen id, purpose, and optional overrideSender / startingNonce . Longer sequences can be merged with create joined multi sign request (chain Foundry output with ma"
1298
+ },
1299
+ {
1300
+ "id": "example-command-summary",
1301
+ "title": "Example command summary",
1302
+ "level": 4,
1303
+ "excerpt": "bash"
1304
+ },
1305
+ {
1306
+ "id": "keygen-address-from-compose-tab-rpc-from-configure-blockchains",
1307
+ "title": "KeyGen address from Compose tab; RPC from Configure blockchains",
1308
+ "level": 1,
1309
+ "excerpt": "forge script script/MyScript.s.sol:MyScript \\ rpc url <RPC \\ sender <KeyGen Eth address"
1310
+ },
1311
+ {
1312
+ "id": "no-broadcast-import-broadcast-dry-run-run-latest-json-in-the-node-app",
1313
+ "title": "No --broadcast → import broadcast/.../dry-run/run-latest.json in the node app",
1314
+ "level": 1,
1315
+ "excerpt": "<! Screenshot placeholder: replace media/mpc compose foundry import.png <img src=\"/ media/mpc compose foundry import.png\" alt=\"Import from Foundry broadcast — run latest.json loaded into Compose batch (screenshot pending)\" / Separate from composing a new sign request, the node app supports bump and "
1316
+ },
1317
+ {
1318
+ "id": "bump-remove-mempool-transactions",
1319
+ "title": "Bump / remove — mempool transactions",
1320
+ "level": 3,
1321
+ "excerpt": "Separate from composing a new sign request, the node app supports bump and remove for transactions this KeyGen has already signed and broadcast that are still pending in the mempool (not yet mined). These actions apply to an existing outbound tx (by hash or from History / pending list), not to a dra"
1322
+ },
1323
+ {
1324
+ "id": "bump",
1325
+ "title": "Bump",
1326
+ "level": 4,
1327
+ "excerpt": "Bump replaces a stuck or slow pending transaction with a replacement transaction: Same nonce as the pending tx (required for replacement on EVM chains). Higher max fee / priority fee (or equivalent) so miners or the sequencer pick it up sooner. Same intent in most cases (same recipient and value, or"
1328
+ },
1329
+ {
1330
+ "id": "remove",
1331
+ "title": "Remove",
1332
+ "level": 4,
1333
+ "excerpt": "Remove tries to drop or cancel a pending transaction still in the mempool: On EVM chains this is usually a cancel replacement: same nonce, zero value self transfer or empty call to yourself, with fees high enough to outbid the pending tx. If the original tx confirms first, remove/cancel is no longer"
1334
+ },
1335
+ {
1336
+ "id": "related",
1337
+ "title": "Related",
1338
+ "level": 3,
1339
+ "excerpt": "MPC Accept/Reject loop DeFi protocol support Configure the AI harness KeyGens Overview Default Ed25519 signer"
1340
+ }
1341
+ ],
1342
+ "excerpt": "This page describes how an originator builds a multi sign request (single transaction or batch ) before it enters the MPC Accept/Reject loop. The same loop applies no matter how the request was created. How the originator creates the request Typical use Manual compose Hand built transfers, custom co",
1343
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/ComposeTransactionFlow"
1344
+ },
1345
+ {
1346
+ "path": "ContinuumDAO/MPAWallet/DeFiProtocolSupport",
1347
+ "title": "DeFi protocol support",
1348
+ "section": "Using an MPA wallet",
1349
+ "headings": [
1350
+ "DeFi protocol support",
1351
+ "Supported protocols",
1352
+ "Notes",
1353
+ "Related"
1354
+ ],
1355
+ "sections": [
1356
+ {
1357
+ "id": "defi-protocol-support",
1358
+ "title": "DeFi protocol support",
1359
+ "level": 2,
1360
+ "excerpt": "MPA wallet can interact with selected web3 / DeFi protocols directly — through the node app multi sign UI and through the built in AI agent (continuum MCP: load a protocol pack, then use that protocol’s tools). On chain actions still go through your Group’s MPC KeyGen and multi agree threshold — the"
1361
+ },
1362
+ {
1363
+ "id": "supported-protocols",
1364
+ "title": "Supported protocols",
1365
+ "level": 3,
1366
+ "excerpt": "Protocol Capabilities Permissions / requirements Uniswap v4 Spot swaps; UniswapX limit orders (Ethereum mainnet); LP mint / increase / decrease / collect; pool OHLCV; agent TP/SL style monitoring via cron (not a native Uniswap order type) UNISWAP API KEY in AI Agent → Variables (and for agent quotes"
1367
+ },
1368
+ {
1369
+ "id": "notes",
1370
+ "title": "Notes",
1371
+ "level": 3,
1372
+ "excerpt": "AI agent: load a protocol with continuum MCP ( list defi protocols / load defi protocol ), then use that pack’s tools. Preferred KeyGen and default Ed25519 signer still apply for management signed steps — see Configure the AI harness. Node app: open the multi sign / protocol UI for the same packs (n"
1373
+ },
1374
+ {
1375
+ "id": "related",
1376
+ "title": "Related",
1377
+ "level": 3,
1378
+ "excerpt": "MPC Accept/Reject loop Compose transaction flow Overview Install a node AI harness overview Configure the AI harness Trade ideas KeyGens"
1379
+ }
1380
+ ],
1381
+ "excerpt": "MPA wallet can interact with selected web3 / DeFi protocols directly — through the node app multi sign UI and through the built in AI agent (continuum MCP: load a protocol pack, then use that protocol’s tools). On chain actions still go through your Group’s MPC KeyGen and multi agree threshold — the",
1382
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/DeFiProtocolSupport"
1383
+ },
1384
+ {
1385
+ "path": "ContinuumDAO/MPAWallet/DefaultEd25519Signer",
1386
+ "title": "Default Ed25519 signer",
1387
+ "section": "Using an MPA wallet",
1388
+ "headings": [
1389
+ "Default Ed25519 signer",
1390
+ "What “default signer” means",
1391
+ "Where your keys come from",
1392
+ "How to set the default signer",
1393
+ "How the AI agent uses it",
1394
+ "Checklist",
1395
+ "Related"
1396
+ ],
1397
+ "sections": [
1398
+ {
1399
+ "id": "default-ed25519-signer",
1400
+ "title": "Default Ed25519 signer",
1401
+ "level": 2,
1402
+ "excerpt": "The built in AI agent (Agent chat and Telegram, if configured) needs an Ed25519 management key to call your node’s API. The default signer (also called preferred signer in the UI) is which allowed management key it uses. This is not the shared MPC wallet key. On chain control still uses MPC — the no"
1403
+ },
1404
+ {
1405
+ "id": "what-default-signer-means",
1406
+ "title": "What “default signer” means",
1407
+ "level": 3,
1408
+ "excerpt": "Management key — authenticates HTTP actions on this node (sign requests, messages, KeyGen flows, and so on). Preferred KeyGen (under AI Agent → Provider ) selects which shared wallet the agent works on. That is separate from the default signer. Agent chat and Telegram use the same default signer."
1409
+ },
1410
+ {
1411
+ "id": "where-your-keys-come-from",
1412
+ "title": "Where your keys come from",
1413
+ "level": 3,
1414
+ "excerpt": "Bootstrap (config) — created when the node was installed, or when you recreated the node and restored or regenerated bootstrap material. Shown in the app as something like Bootstrap (config) . Extra (added) keys — created under Node → Ed25519 Management Keys (Add signer). Management private material"
1415
+ },
1416
+ {
1417
+ "id": "how-to-set-the-default-signer",
1418
+ "title": "How to set the default signer",
1419
+ "level": 3,
1420
+ "excerpt": "1. Open Node → Ed25519 Management Keys . 2. Find the preferred / crown indicator on the signer table. 3. Set preferred on an active allowed key. Common choices: Keep or select bootstrap if you want the install time key. Create an added key and prefer that if you want a dedicated agent management key"
1421
+ },
1422
+ {
1423
+ "id": "how-the-ai-agent-uses-it",
1424
+ "title": "How the AI agent uses it",
1425
+ "level": 3,
1426
+ "excerpt": "1. If a preferred signer is set and still allowed, the agent uses that key. 2. Otherwise it falls back to an allowed key that has local signing material (usually bootstrap on a normal Docker install). 3. You do not paste signatures or manage ~/.ssh keys for the built in harness path."
1427
+ },
1428
+ {
1429
+ "id": "checklist",
1430
+ "title": "Checklist",
1431
+ "level": 3,
1432
+ "excerpt": "Situation What to do Fresh install Bootstrap is enough unless you want a separate preferred key Recreated node Restore the original bootstrap private key (same PublicMgtKey) — see Backup and restoration Telegram bot Same default signer as Agent chat Want more detail Technical lifecycle: CONFIGURING "
1433
+ },
1434
+ {
1435
+ "id": "related",
1436
+ "title": "Related",
1437
+ "level": 3,
1438
+ "excerpt": "MPC Accept/Reject loop Backup and restoration Configure the AI harness AI harness overview Telegram Mini App Technical: CONFIGURING ED25519 KEYS.md"
1439
+ }
1440
+ ],
1441
+ "excerpt": "The built in AI agent (Agent chat and Telegram, if configured) needs an Ed25519 management key to call your node’s API. The default signer (also called preferred signer in the UI) is which allowed management key it uses. This is not the shared MPC wallet key. On chain control still uses MPC — the no",
1442
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/DefaultEd25519Signer"
1443
+ },
1444
+ {
1445
+ "path": "ContinuumDAO/MPAWallet/EjectConversion",
1446
+ "title": "Eject to Private Key",
1447
+ "section": "Using an MPA wallet",
1448
+ "headings": [
1449
+ "Eject to Private Key",
1450
+ "What you get",
1451
+ "How to eject (node app)",
1452
+ "After eject",
1453
+ "Related"
1454
+ ],
1455
+ "sections": [
1456
+ {
1457
+ "id": "eject-to-private-key",
1458
+ "title": "Eject to Private Key",
1459
+ "level": 2,
1460
+ "excerpt": "An MPA KeyGen is an MPC wallet: each Group node holds only a share . There is no single private key on any machine until the Group deliberately ejects that KeyGen. That is the point of the custody role in MPA wallet Overview — assets stay under TSS until the Group chooses to convert to a normal key."
1461
+ },
1462
+ {
1463
+ "id": "what-you-get",
1464
+ "title": "What you get",
1465
+ "level": 3,
1466
+ "excerpt": "Before eject After eject MPC shares only; no full private key on any node Full private key export available to nodes that finalized Multi sign / Accept–Reject for every spend That KeyGen can no longer be used for MPC signing Address is the KeyGen’s public address Same address — now controllable with"
1467
+ },
1468
+ {
1469
+ "id": "how-to-eject-node-app",
1470
+ "title": "How to eject (node app)",
1471
+ "level": 3,
1472
+ "excerpt": "Do this from Keys on a node that is in the KeyGen’s Group. Peers need to be online and healthy enough to complete the eject protocol (same idea as finishing a KeyGen or multi sign). 1. Open Existing keys , expand the KeyGen you want to convert. 2. Start eject for that KeyGen (management signed reque"
1473
+ },
1474
+ {
1475
+ "id": "after-eject",
1476
+ "title": "After eject",
1477
+ "level": 3,
1478
+ "excerpt": "MPC share material for that KeyGen is cleared on nodes that finalized. The address is no longer an MPC committee wallet. Anyone who obtains the exported private key can spend without further Group Accepts. Treat the export like a seed phrase: do not paste it into chats, tickets, or untrusted sites. "
1479
+ },
1480
+ {
1481
+ "id": "related",
1482
+ "title": "Related",
1483
+ "level": 3,
1484
+ "excerpt": "MPC Accept/Reject loop KeyGens — creating multi agree keys and thresholds Overview Backup and restoration Operator / API detail: API Implementation — key eject"
1485
+ }
1486
+ ],
1487
+ "excerpt": "An MPA KeyGen is an MPC wallet: each Group node holds only a share . There is no single private key on any machine until the Group deliberately ejects that KeyGen. That is the point of the custody role in MPA wallet Overview — assets stay under TSS until the Group chooses to convert to a normal key.",
1488
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/EjectConversion"
1489
+ },
1490
+ {
1491
+ "path": "ContinuumDAO/MPAWallet/Install",
1492
+ "title": "Install a node",
1493
+ "section": "Using an MPA wallet",
1494
+ "headings": [
1495
+ "Install a node",
1496
+ "Start here",
1497
+ "For AI agents — one-shot VPS script",
1498
+ "Choose where the node runs",
1499
+ "Remote VPS",
1500
+ "Your own PC",
1501
+ "Home router setup (port forwarding)",
1502
+ "Windows",
1503
+ "macOS",
1504
+ "Linux PC",
1505
+ "After install (all paths)",
1506
+ "Attach your node",
1507
+ "Post install steps",
1508
+ "One node is not enough for a KeyGen address",
1509
+ "Tell your node about its peers (Configured Nodes)",
1510
+ "Then create a Group and a KeyGen",
1511
+ "Related"
1512
+ ],
1513
+ "sections": [
1514
+ {
1515
+ "id": "install-a-node",
1516
+ "title": "Install a node",
1517
+ "level": 2,
1518
+ "excerpt": "For almost all interactive (human) users, install a node from the Continuum node map — you do not need manual shell provisioning. <img src=\"/ media/ContinuumMPAWalletNodeMap.png\" alt=\"\"/ 1. Open https://mpa.continuumdao.org/node map. 2. Click the + button. 3. Walk through the installer options: wher"
1519
+ },
1520
+ {
1521
+ "id": "start-here",
1522
+ "title": "Start here",
1523
+ "level": 3,
1524
+ "excerpt": "1. Open https://mpa.continuumdao.org/node map. 2. Click the + button. 3. Walk through the installer options: where the node should run (remote VPS or your own PC), management keys, and the public IPv4 address peers will use to reach you. 4. When the installer finishes, attach the node (see Attach yo"
1525
+ },
1526
+ {
1527
+ "id": "for-ai-agents-one-shot-vps-script",
1528
+ "title": "For AI agents — one-shot VPS script",
1529
+ "level": 3,
1530
+ "excerpt": "To create a node programmatically on Ubuntu/Debian, use the one shot installer (not the long manual page): Script install node debian ubuntu.sh Agent guide CREATE NODE ONESHOT.md Repo entry AGENTS.md bash curl fsSL \"https://raw.githubusercontent.com/ContinuumDAO/mpc config/main/scripts/install node "
1531
+ },
1532
+ {
1533
+ "id": "choose-where-the-node-runs",
1534
+ "title": "Choose where the node runs",
1535
+ "level": 3,
1536
+ "excerpt": "Host Best when Notes Remote VPS You want an always on node with a stable public IP Cloud firewall / security groups must allow peer ports Your own PC You prefer running Docker Desktop at home or on a laptop You must use your public WAN IP and forward ports on your router"
1537
+ },
1538
+ {
1539
+ "id": "remote-vps",
1540
+ "title": "Remote VPS",
1541
+ "level": 3,
1542
+ "excerpt": "1. Use the node map + flow and choose the remote / VPS option the installer presents. 2. Typical prerequisites: an Ubuntu or Debian VPS, SSH access, and the public IPv4 the installer asks for. 3. Ensure the cloud firewall (or host firewall) allows discovery and peer traffic — see the one shot VPS in"
1543
+ },
1544
+ {
1545
+ "id": "your-own-pc",
1546
+ "title": "Your own PC",
1547
+ "level": 3,
1548
+ "excerpt": "Enter your public WAN IPv4 in the installer (for example from https://ip.me) — not a private LAN address such as 192.168.x.x . Other nodes must reach you over the internet. Prerequisites (you install these yourself): 1. Docker Desktop — Continuum’s PC installer does not install Docker Desktop. Downl"
1549
+ },
1550
+ {
1551
+ "id": "home-router-setup-port-forwarding",
1552
+ "title": "Home router setup (port forwarding)",
1553
+ "level": 4,
1554
+ "excerpt": "Your PC sits behind a home router. Other Continuum nodes on the internet only see your public IP (what ip.me shows). The router must send the Continuum ports through to your PC . That takes two simple settings in the router’s admin pages. 1. Open the router settings In a browser on your home network"
1555
+ },
1556
+ {
1557
+ "id": "windows",
1558
+ "title": "Windows",
1559
+ "level": 4,
1560
+ "excerpt": "1. Install Docker Desktop for Windows yourself (download), with the WSL2 backend, and start it. 2. In Docker Desktop → Extensions , search for Continuum Node / continuumdao/continuum node installer and install the extension (or follow the node map + prompts to the same extension). 3. Open the extens"
1561
+ },
1562
+ {
1563
+ "id": "macos",
1564
+ "title": "macOS",
1565
+ "level": 4,
1566
+ "excerpt": "1. Install and start Docker Desktop for Mac yourself (download). 2. In Docker Desktop → Extensions , search for Continuum Node / continuumdao/continuum node installer and install the extension. 3. Open the extension, enter your management key and public IPv4, then Install . Full walkthrough: Install"
1567
+ },
1568
+ {
1569
+ "id": "linux-pc",
1570
+ "title": "Linux PC",
1571
+ "level": 4,
1572
+ "excerpt": "Install Docker Desktop for Linux yourself if you use the Desktop extension path, then search Extensions for Continuum Node / continuumdao/continuum node installer . Prefer the same node map + flow the installer offers. If it routes you to a workstation style script instead, follow the prompts and th"
1573
+ },
1574
+ {
1575
+ "id": "after-install-all-paths",
1576
+ "title": "After install (all paths)",
1577
+ "level": 3,
1578
+ "excerpt": "1. Attach your node and confirm you can open the Node page. 2. Back up bootstrap Ed25519 material and, soon after, an encrypted database snapshot — see Backup and restoration (also Default Ed25519 signer and technical CONFIGURING ED25519 KEYS.md). 3. Continue with Post install steps below."
1579
+ },
1580
+ {
1581
+ "id": "attach-your-node",
1582
+ "title": "Attach your node",
1583
+ "level": 3,
1584
+ "excerpt": "Your browser talks to your node. ContinuumDAO does not relay that control path. Three attach options on the hosted SPA: Browser HTTPS , Node hosted app (local PC) , and Node hosted app (SSH tunnel) . Geo restricted users see only the two node hosted options. Full walkthrough with screenshots: Attach"
1585
+ },
1586
+ {
1587
+ "id": "post-install-steps",
1588
+ "title": "Post install steps",
1589
+ "level": 2,
1590
+ "excerpt": "A single node is not enough to create a shared KeyGen address. You need peers, a Group, and then a KeyGen. Detailed UI for each step lives under Creating an MPC Signer — this section is the bridge from “I have one node” to those pages. A lone node cannot create a KeyGen / shared wallet address by it"
1591
+ },
1592
+ {
1593
+ "id": "one-node-is-not-enough-for-a-keygen-address",
1594
+ "title": "One node is not enough for a KeyGen address",
1595
+ "level": 3,
1596
+ "excerpt": "A lone node cannot create a KeyGen / shared wallet address by itself. The simplest useful MPA wallet is two nodes with 2/2 TSS (both must agree to sign) — typical when you want to control an AI agent yourself: one node proposes via the agent, the other is your human in the loop circuit breaker. Why "
1597
+ },
1598
+ {
1599
+ "id": "tell-your-node-about-its-peers-configured-nodes",
1600
+ "title": "Tell your node about its peers (Configured Nodes)",
1601
+ "level": 3,
1602
+ "excerpt": "After a fresh install, the peer / relay list is typically a placeholder — not a working multi node mesh yet. 1. Open Node → Node Peer IP Editing . 2. Set a real Relay IP (the first / relay slot). Every node that will collaborate must use the same relay as the first entry. 3. Add the other node addre"
1603
+ },
1604
+ {
1605
+ "id": "then-create-a-group-and-a-keygen",
1606
+ "title": "Then create a Group and a KeyGen",
1607
+ "level": 3,
1608
+ "excerpt": "1. Confirm Configured Nodes are healthy → Configured Nodes 2. Create or join a Group → Groups 3. Create a KeyGen (shared address) → KeyGens You can keep using the wallet from the node app alone. The MPA wallet is AI first , so most users will also want the optional Configure the AI harness steps aft"
1609
+ },
1610
+ {
1611
+ "id": "related",
1612
+ "title": "Related",
1613
+ "level": 3,
1614
+ "excerpt": "Overview Backup and restoration Configured Nodes Groups KeyGens Configure the AI harness CREATE NODE ONESHOT.md — AI agent one shot VPS install Running an MPC Node — advanced / manual path"
1615
+ }
1616
+ ],
1617
+ "excerpt": "<! agent: task: create mpc node audience: [human, ai agent] oneshot script: https://raw.githubusercontent.com/ContinuumDAO/mpc config/main/scripts/install node debian ubuntu.sh oneshot doc: https://github.com/ContinuumDAO/mpc config/blob/main/docs/CREATE NODE ONESHOT.md agents md: https://github.com",
1618
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/Install"
1619
+ },
1620
+ {
1621
+ "path": "ContinuumDAO/MPAWallet/MPCAcceptRejectLoop",
1622
+ "title": "MPC Accept/Reject loop",
1623
+ "section": "Using an MPA wallet",
1624
+ "headings": [
1625
+ "MPC Accept/Reject loop",
1626
+ "Creating a multi-sign request",
1627
+ "Join — threshold Accept / Reject",
1628
+ "Execute — MPC signing and broadcast",
1629
+ "AI agent flow",
1630
+ "History — audit on each node",
1631
+ "Batching multiple signatures",
1632
+ "Related"
1633
+ ],
1634
+ "sections": [
1635
+ {
1636
+ "id": "mpc-accept-reject-loop",
1637
+ "title": "MPC Accept/Reject loop",
1638
+ "level": 2,
1639
+ "excerpt": "Every on chain spend from a multi agree KeyGen runs through the same multi sign request flow: one node (the originator ) proposes one or more transactions; the other KeyGen nodes Accept or Reject until the KeyGen threshold is met or the round times out. Only then does the originator run MPC signing "
1640
+ },
1641
+ {
1642
+ "id": "creating-a-multi-sign-request",
1643
+ "title": "Creating a multi-sign request",
1644
+ "level": 3,
1645
+ "excerpt": "The originator is whichever node (or attached user / AI agent on that node) creates the sign request. A request may contain one transaction or a batched set of steps; peers always Accept/Reject the whole proposal on Join (see Batching multiple signatures). Ways to create a request (all enter the sam"
1646
+ },
1647
+ {
1648
+ "id": "join-threshold-accept-reject",
1649
+ "title": "Join — threshold Accept / Reject",
1650
+ "level": 3,
1651
+ "excerpt": "Open the Join tab on any node in the KeyGen. Pending multi sign requests appear there for both the originator and non originator nodes. The originator see the Join request that they created in their own Join tab. In this example, they created an ERC20 transfer sign request of some USDC, which is mar"
1652
+ },
1653
+ {
1654
+ "id": "execute-mpc-signing-and-broadcast",
1655
+ "title": "Execute — MPC signing and broadcast",
1656
+ "level": 3,
1657
+ "excerpt": "When enough nodes have Accepted within the time limit, the originator node shows the completed sign request round on the Execute tab. The originator can then: 1. Shelve — park the approved request without generating signatures yet (useful if market conditions or gas changed since the Accept phase). "
1658
+ },
1659
+ {
1660
+ "id": "ai-agent-flow",
1661
+ "title": "AI agent flow",
1662
+ "level": 3,
1663
+ "excerpt": "Note that this ERC20 transfer could have been done in the AI agent chat (in the node app, or in the Telegram bot) e.g. the originator says \"Send John 0.1 USDC on Linea using the custom gas and with the Purpose text 'Test transfer before sending monthly revenue to the staker'\" and then on a non orgin"
1664
+ },
1665
+ {
1666
+ "id": "history-audit-on-each-node",
1667
+ "title": "History — audit on each node",
1668
+ "level": 3,
1669
+ "excerpt": "Whatever happens to a multi sign request — pending on Join , approved then shelved, signatures generated, broadcast success or failure, timeout, or Reject — the outcome is stored on each node and listed on the History tab. Use History for post mortem review: who originated, Purpose / Thoughts, Accep"
1670
+ },
1671
+ {
1672
+ "id": "batching-multiple-signatures",
1673
+ "title": "Batching multiple signatures",
1674
+ "level": 3,
1675
+ "excerpt": "Several distinct signatures (multiple transactions, or multiple steps in one workflow) can be batched into a single multi sign request . Batches are not limited to the Compose UI — DeFi protocol actions and (when documented) Foundry script automation often create batched requests too. The Group trea"
1676
+ },
1677
+ {
1678
+ "id": "related",
1679
+ "title": "Related",
1680
+ "level": 3,
1681
+ "excerpt": "Compose transaction flow Overview KeyGens DeFi protocol support Trade ideas Default Ed25519 signer Eject to Private Key"
1682
+ }
1683
+ ],
1684
+ "excerpt": "Every on chain spend from a multi agree KeyGen runs through the same multi sign request flow: one node (the originator ) proposes one or more transactions; the other KeyGen nodes Accept or Reject until the KeyGen threshold is met or the round times out. Only then does the originator run MPC signing ",
1685
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/MPCAcceptRejectLoop"
1686
+ },
1687
+ {
1688
+ "path": "ContinuumDAO/MPAWallet/Overview",
1689
+ "title": "Overview",
1690
+ "section": "Using an MPA wallet",
1691
+ "headings": [
1692
+ "An Overview of the Multi-party Agent Wallet",
1693
+ "Why create an MPA wallet (two roles)",
1694
+ "1. Secure, decentralized asset custody (MPA wallet)",
1695
+ "2. Optional — secure cross-chain transactions (Continuum / C3Caller)",
1696
+ "Using the wallet — AI-first, rich frontend always",
1697
+ "Fully decentralized custody",
1698
+ "Management signing and devices",
1699
+ "Subscription through staking",
1700
+ "Related"
1701
+ ],
1702
+ "sections": [
1703
+ {
1704
+ "id": "an-overview-of-the-multi-party-agent-wallet",
1705
+ "title": "An Overview of the Multi-party Agent Wallet",
1706
+ "level": 2,
1707
+ "excerpt": "The MPA wallet is an AI first wallet: people and AI agents jointly control a single wallet address using Multi Party Computation (MPC). Every node ships with a built in AI agent harness — the natural way to propose trades, run analysis, and drive DeFi flows — while a rich frontend (mpa.continuumdao."
1708
+ },
1709
+ {
1710
+ "id": "why-create-an-mpa-wallet-two-roles",
1711
+ "title": "Why create an MPA wallet (two roles)",
1712
+ "level": 3,
1713
+ "excerpt": "The same node software supports two related purposes. You can use the first alone; the second is optional. Use MPC for fully decentralized self custody of Bitcoin (SegWit and Taproot), Ethereum and other EVM compatible assets , and — as support rolls out — Ed25519 chains (e.g. Solana, NEAR). Assets "
1714
+ },
1715
+ {
1716
+ "id": "1-secure-decentralized-asset-custody-mpa-wallet",
1717
+ "title": "1. Secure, decentralized asset custody (MPA wallet)",
1718
+ "level": 4,
1719
+ "excerpt": "Use MPC for fully decentralized self custody of Bitcoin (SegWit and Taproot), Ethereum and other EVM compatible assets , and — as support rolls out — Ed25519 chains (e.g. Solana, NEAR). Assets are held without a single Private Key , with: Loss safeguard — extra nodes (and a suitable threshold) so on"
1720
+ },
1721
+ {
1722
+ "id": "2-optional-secure-cross-chain-transactions-continuum-c3caller",
1723
+ "title": "2. Optional — secure cross-chain transactions (Continuum / C3Caller)",
1724
+ "level": 4,
1725
+ "excerpt": "The same nodes can join larger Groups that secure Continuum cross chain messaging. For that role, Groups are typically five or more nodes with 3/5 TSS MPC, and ideally each node is run by a completely independent operator . Eligibility and proposal steps: Joining the Continuum. Role Typical Group TS"
1726
+ },
1727
+ {
1728
+ "id": "using-the-wallet-ai-first-rich-frontend-always",
1729
+ "title": "Using the wallet — AI-first, rich frontend always",
1730
+ "level": 3,
1731
+ "excerpt": "The MPA wallet is AI first by design : the built in AI agent harness is the recommended path for market analysis, trade ideas, and protocol workflows — with your threshold still bounding every signature. You do not need the agent to use the wallet. The rich frontend (hosted at mpa.continuumdao.org o"
1732
+ },
1733
+ {
1734
+ "id": "fully-decentralized-custody",
1735
+ "title": "Fully decentralized custody",
1736
+ "level": 3,
1737
+ "excerpt": "The MPA wallet is designed so that custody stays in your hands , not on ContinuumDAO infrastructure: No key shares in databases — unlike many other MPC wallets, threshold shares are not stored in vendor controlled databases. Shares, Group state, and encrypted wallet context live only on the nodes yo"
1738
+ },
1739
+ {
1740
+ "id": "management-signing-and-devices",
1741
+ "title": "Management signing and devices",
1742
+ "level": 3,
1743
+ "excerpt": "When you attach to a node, you management sign sensitive actions: Accept/Reject on multi sign, KeyGen flows, bootstrap and database backup operations, and other node API calls (MetaMask EIP 191 or Ed25519 — see KeyGens). Prefer a device not used for general internet use — a machine you do not browse"
1744
+ },
1745
+ {
1746
+ "id": "subscription-through-staking",
1747
+ "title": "Subscription through staking",
1748
+ "level": 3,
1749
+ "excerpt": "MPA wallet access can be paid via a monthly subscription , or — for node operators who stake veCTM on their node — through subscription through staking : free use of the wallet up to a governance set free signature limit . Attach veCTM from the staking panel after your node is running; limits and an"
1750
+ },
1751
+ {
1752
+ "id": "related",
1753
+ "title": "Related",
1754
+ "level": 3,
1755
+ "excerpt": "Attach your node MPC Accept/Reject loop Compose transaction flow Install a node Backup and restoration Configure the AI harness KeyGens Eject to Private Key Joining the Continuum — optional cross chain signer role"
1756
+ }
1757
+ ],
1758
+ "excerpt": "The MPA wallet is an AI first wallet: people and AI agents jointly control a single wallet address using Multi Party Computation (MPC). Every node ships with a built in AI agent harness — the natural way to propose trades, run analysis, and drive DeFi flows — while a rich frontend (mpa.continuumdao.",
1759
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/Overview"
1760
+ },
1761
+ {
1762
+ "path": "ContinuumDAO/MPAWallet/TechnicalAnalysis",
1763
+ "title": "Technical analysis",
1764
+ "section": "Using an MPA wallet",
1765
+ "headings": [
1766
+ "Technical analysis",
1767
+ "Analysis options",
1768
+ "Default settings",
1769
+ "Price % vs ATR",
1770
+ "Settings by analysis type",
1771
+ "Examples",
1772
+ "Related"
1773
+ ],
1774
+ "sections": [
1775
+ {
1776
+ "id": "technical-analysis",
1777
+ "title": "Technical analysis",
1778
+ "level": 2,
1779
+ "excerpt": "Once you have candlestick OHLCV on a chart (see AI charting), the AI agent can run chart analysis from a fixed menu — in Agent chat or Telegram (tap an analysis option, or ask for “analysis N”). Results can include structured commentary, PRIMARY trade ideas for clear setups, and overlays you can app"
1780
+ },
1781
+ {
1782
+ "id": "analysis-options",
1783
+ "title": "Analysis options",
1784
+ "level": 3,
1785
+ "excerpt": "Analysis What it does Trend structure Maps swing highs/lows and trend phases (higher highs / higher lows, etc.), bias, and drawable trend lines. Elliott Wave Fib guided impulse / correction wave count with projections, labels, and invalidation. Key levels (level to level) Nearest support below and r"
1786
+ },
1787
+ {
1788
+ "id": "default-settings",
1789
+ "title": "Default settings",
1790
+ "level": 3,
1791
+ "excerpt": "Many analysis parameters — indicator periods, proximity gates for clear vs unclear setups, and depth sampling — are read from trade desk.yaml on the node. Edit it under Node → AI Agent → Skills → Trade desk (runtime: agent llm config/trade desk.yaml , seeded from agent llm config.defaults/trade desk"
1792
+ },
1793
+ {
1794
+ "id": "price-vs-atr",
1795
+ "title": "Price % vs ATR",
1796
+ "level": 4,
1797
+ "excerpt": "Several desk knobs accept either price % or ATR scaling. They use the same field names but mean different things depending on mode — do not copy a price mode number into ATR mode (or vice versa). ATR (Average True Range) is a volatility measure: over the last N bars (default 14 , set by entryProximi"
1798
+ },
1799
+ {
1800
+ "id": "settings-by-analysis-type",
1801
+ "title": "Settings by analysis type",
1802
+ "level": 4,
1803
+ "excerpt": "Analysis Desk keys ( trade desk.yaml ) Trend structure Universal proximity, minTradeRatio Elliott Wave Universal proximity (bar count guidance is in the analysis skill) Key levels Universal proximity Key level Fibonacci fibKeyLevelMinConfidence (default 0.35 ), universal proximity Momentum — (confir"
1804
+ },
1805
+ {
1806
+ "id": "examples",
1807
+ "title": "Examples",
1808
+ "level": 4,
1809
+ "excerpt": "Tighter proximity on volatile alts (ATR based gate): yaml universal: entryProximityMode: atr entryProximityPct: 25 within 25% of one 14 bar ATR entryProximityAtrPeriod: 14 Donchian — immediate breakout instead of retest: yaml universal: donchianPeriod: 20 donchianEntryMode: immediate dc brk instead "
1810
+ },
1811
+ {
1812
+ "id": "related",
1813
+ "title": "Related",
1814
+ "level": 3,
1815
+ "excerpt": "Trade ideas — PRIMARY ideas → multi sign → cron MPC Accept/Reject loop AI charting — OHLCV sources and interactive charts DeFi protocol support — venues that can also execute after analysis AI harness overview Telegram Mini App"
1816
+ }
1817
+ ],
1818
+ "excerpt": "Once you have candlestick OHLCV on a chart (see AI charting), the AI agent can run chart analysis from a fixed menu — in Agent chat or Telegram (tap an analysis option, or ask for “analysis N”). Results can include structured commentary, PRIMARY trade ideas for clear setups, and overlays you can app",
1819
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/TechnicalAnalysis"
1820
+ },
1821
+ {
1822
+ "path": "ContinuumDAO/MPAWallet/TradeIdeas",
1823
+ "title": "Trade ideas",
1824
+ "section": "Using an MPA wallet",
1825
+ "headings": [
1826
+ "Trade ideas",
1827
+ "From analysis to PRIMARY trade ideas",
1828
+ "From a trade idea to a multi-sign request",
1829
+ "Scheduling with cron",
1830
+ "Default settings",
1831
+ "Build prefill (`trade-desk.yaml`)",
1832
+ "Skill policy (`trade-defaults`)",
1833
+ "Examples",
1834
+ "Related"
1835
+ ],
1836
+ "sections": [
1837
+ {
1838
+ "id": "trade-ideas",
1839
+ "title": "Trade ideas",
1840
+ "level": 2,
1841
+ "excerpt": "Technical analysis does more than describe the chart. When an analysis finds a clear setup, the node can turn it into one or more trade ideas — concrete long/short (or spot) levels the AI agent can use to build a real multi sign request for agreement by the other nodes in your KeyGen. 1. Load OHLCV "
1842
+ },
1843
+ {
1844
+ "id": "from-analysis-to-primary-trade-ideas",
1845
+ "title": "From analysis to PRIMARY trade ideas",
1846
+ "level": 3,
1847
+ "excerpt": "1. Load OHLCV and optionally open a chart (AI charting). 2. Run an analysis from the chart analysis menu (for example momentum, key levels, classic patterns). 3. For each analysis category , the product ranks candidates and surfaces a PRIMARY trade idea when the setup is clear — the main actionable "
1848
+ },
1849
+ {
1850
+ "id": "from-a-trade-idea-to-a-multi-sign-request",
1851
+ "title": "From a trade idea to a multi-sign request",
1852
+ "level": 3,
1853
+ "excerpt": "1. Choose a trade idea ( Build N , or ask the agent to build a specific idea). 2. Confirm sizing and execution venue when prompted (for example Hyperliquid, GMX, Arcus, or Uniswap — see DeFi protocol support). 3. The agent builds a multi sign request (management signed by your node’s default Ed25519"
1854
+ },
1855
+ {
1856
+ "id": "scheduling-with-cron",
1857
+ "title": "Scheduling with cron",
1858
+ "level": 3,
1859
+ "excerpt": "The same loop — fetch OHLCV, run analyses, evaluate trade ideas, and optionally build trades — can run on a schedule via AI Agent → Cron (and related orchestration / trade cron templates). On each run the agent can: Refresh candles and re run selected analyses Rank or pick among PRIMARY (and related"
1860
+ },
1861
+ {
1862
+ "id": "default-settings",
1863
+ "title": "Default settings",
1864
+ "level": 3,
1865
+ "excerpt": "When you pick a trade idea ( Build N ), the node pre fills the Build Trade form from two related sources: File Type Role trade desk.yaml Machine readable YAML Numeric defaults on a deterministic fast path — entry/stop offsets, proximity, per protocol sizing, bracket TP/SL, and when to skip the fast "
1866
+ },
1867
+ {
1868
+ "id": "build-prefill-trade-desk-yaml",
1869
+ "title": "Build prefill (`trade-desk.yaml`)",
1870
+ "level": 4,
1871
+ "excerpt": "Universal build fields under universal: : Setting What it controls entryOffsetPct Resting limit band beyond the analysis entry (always a price % ). invalidationOffsetPct / invalidationOffsetMode Stop / pattern failure band beyond invalidation ( price or atr ). entryProximityMode / entryProximityPct "
1872
+ },
1873
+ {
1874
+ "id": "skill-policy-trade-defaults",
1875
+ "title": "Skill policy (`trade-defaults`)",
1876
+ "level": 4,
1877
+ "excerpt": "Analysis kind What the skill decides Trend structure Always retest entry mode; default TP = impulse measured move ( takeProfitSource: impulse leg ). Elliott Wave Wave menu selection; corrective counts stay unclear. Key levels Primary bounce/rejection vs nested kl ret break+retest alternate. Key leve"
1878
+ },
1879
+ {
1880
+ "id": "examples",
1881
+ "title": "Examples",
1882
+ "level": 4,
1883
+ "excerpt": "Default build offsets (1% entry and stop bands): yaml universal: entryOffsetPct: 1 invalidationOffsetMode: price invalidationOffsetPct: 1 Hyperliquid — conservative take profit inside the analysis target: yaml protocols: hyperliquid: targetOffsetMode: price targetOffsetPct: 0.1 TP slightly inside fu"
1884
+ },
1885
+ {
1886
+ "id": "related",
1887
+ "title": "Related",
1888
+ "level": 3,
1889
+ "excerpt": "Technical analysis AI charting DeFi protocol support MPC Accept/Reject loop Configure the AI harness Overview — 2/2 human in the loop Accept Telegram Mini App"
1890
+ }
1891
+ ],
1892
+ "excerpt": "Technical analysis does more than describe the chart. When an analysis finds a clear setup, the node can turn it into one or more trade ideas — concrete long/short (or spot) levels the AI agent can use to build a real multi sign request for agreement by the other nodes in your KeyGen. 1. Load OHLCV ",
1893
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPAWallet/TradeIdeas"
1894
+ },
1895
+ {
1896
+ "path": "ContinuumDAO/MPC/BetterSecurity",
1897
+ "title": "Better Security",
1898
+ "section": "MPC (Multi Party Computation)",
1899
+ "headings": [
1900
+ "Better Security"
1901
+ ],
1902
+ "sections": [
1903
+ {
1904
+ "id": "better-security",
1905
+ "title": "Better Security",
1906
+ "level": 2,
1907
+ "excerpt": "Continuum's MPC stack adheres to CGGMP24 (threshold ECDSA) and FROST (threshold EdDSA), following the open source implementations maintained by the Lockness project under LF Decentralized Trust (Linux Foundation). Proactive Security Strategy: Both protocols support proactive key refresh — the privat"
1908
+ }
1909
+ ],
1910
+ "excerpt": "Continuum's MPC stack adheres to CGGMP24 (threshold ECDSA) and FROST (threshold EdDSA), following the open source implementations maintained by the Lockness project under LF Decentralized Trust (Linux Foundation). Proactive Security Strategy: Both protocols support proactive key refresh — the privat",
1911
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/BetterSecurity"
1912
+ },
1913
+ {
1914
+ "path": "ContinuumDAO/MPC/CoreSteps",
1915
+ "title": "Core Steps",
1916
+ "section": "MPC (Multi Party Computation)",
1917
+ "headings": [
1918
+ "Core Steps",
1919
+ "Distributed Key Generation",
1920
+ "Distributed Signing",
1921
+ "Distributed Key Updating",
1922
+ "Signature Verification"
1923
+ ],
1924
+ "sections": [
1925
+ {
1926
+ "id": "core-steps",
1927
+ "title": "Core Steps",
1928
+ "level": 2,
1929
+ "excerpt": "The core steps of MPC algorithms include distributed key generation, distributed signing, distributed key updating, and signature verification. Assuming there are n (n≥2) participants, they agree to run a threshold signature protocol and set a threshold t, where t must be less than or equal to n. Co"
1930
+ },
1931
+ {
1932
+ "id": "distributed-key-generation",
1933
+ "title": "Distributed Key Generation",
1934
+ "level": 4,
1935
+ "excerpt": "n participants collaboratively run a distributed key generation protocol ( CGGMP24 for secp256k1 / ECDSA, FROST for Ed25519 / EdDSA), which, after several rounds of data interaction, results in a distributed public private key pair. The public key is publicly visible, while the private key appears i"
1936
+ },
1937
+ {
1938
+ "id": "distributed-signing",
1939
+ "title": "Distributed Signing",
1940
+ "level": 4,
1941
+ "excerpt": "When multiple participants agree to generate a signature and their number is greater than or equal to the threshold t, a valid signature can be produced; otherwise, the signature cannot be verified. Participants run a distributed signing protocol together to produce a valid signature compatible with"
1942
+ },
1943
+ {
1944
+ "id": "distributed-key-updating",
1945
+ "title": "Distributed Key Updating",
1946
+ "level": 4,
1947
+ "excerpt": "When a threshold number of participants agree to update keys, private key fragments held by participants can be updated while maintaining forward compatibility. That is, the public key remains unchanged before and after the update, greatly enhancing security without impacting MPC users or applicatio"
1948
+ },
1949
+ {
1950
+ "id": "signature-verification",
1951
+ "title": "Signature Verification",
1952
+ "level": 4,
1953
+ "excerpt": "The signature produced can be publicly verified against the public key generated through the distributed key generation protocol, using the same verification rules as a conventional single party signature on that chain. It's important to note that in the distributed key generation, signing, and key "
1954
+ }
1955
+ ],
1956
+ "excerpt": "The core steps of MPC algorithms include distributed key generation, distributed signing, distributed key updating, and signature verification. Assuming there are n (n≥2) participants, they agree to run a threshold signature protocol and set a threshold t, where t must be less than or equal to n. Co",
1957
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/CoreSteps"
1958
+ },
1959
+ {
1960
+ "path": "ContinuumDAO/MPC/ForDevelopers",
1961
+ "title": "For Developers",
1962
+ "section": "MPC (Multi Party Computation)",
1963
+ "headings": [
1964
+ "For Developers"
1965
+ ],
1966
+ "sections": [
1967
+ {
1968
+ "id": "for-developers",
1969
+ "title": "For Developers",
1970
+ "level": 2,
1971
+ "excerpt": "Some Definitions Node ID: Also known as NodeKey, it is the unique identifier of a node throughout its lifecycle. Networking: Multiple nodes need to form a network, after which distributed keys and signatures can be generated. Group Application ID, Key Generation ID, Signature ID: Serve as unique ide"
1972
+ }
1973
+ ],
1974
+ "excerpt": "Some Definitions Node ID: Also known as NodeKey, it is the unique identifier of a node throughout its lifecycle. Networking: Multiple nodes need to form a network, after which distributed keys and signatures can be generated. Group Application ID, Key Generation ID, Signature ID: Serve as unique ide",
1975
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/ForDevelopers"
1976
+ },
1977
+ {
1978
+ "path": "ContinuumDAO/MPC/MPCvsMultiSig",
1979
+ "title": "MPC vs Multi-Signature",
1980
+ "section": "MPC (Multi Party Computation)",
1981
+ "headings": [
1982
+ "MPC vs Multi-Signature",
1983
+ "1. Creating a Multi-Sig Account",
1984
+ "2. Transaction Authorization",
1985
+ "3. Signature Verification and Execution",
1986
+ "Conclusion"
1987
+ ],
1988
+ "sections": [
1989
+ {
1990
+ "id": "mpc-vs-multi-signature",
1991
+ "title": "MPC vs Multi-Signature",
1992
+ "level": 2,
1993
+ "excerpt": "Multi Signature (Multi Sig) is a security feature used on blockchain platforms like Bitcoin or through smart contracts that require multiple parties to approve a transaction before it can be executed. This setup involves setting rules for multiple authorized accounts to ensure that a transaction onl"
1994
+ },
1995
+ {
1996
+ "id": "1-creating-a-multi-sig-account",
1997
+ "title": "1. Creating a Multi-Sig Account",
1998
+ "level": 4,
1999
+ "excerpt": "This involves setting up a contract that specifies the public keys of all participants and the minimum number of signatures required for transactions to proceed."
2000
+ },
2001
+ {
2002
+ "id": "2-transaction-authorization",
2003
+ "title": "2. Transaction Authorization",
2004
+ "level": 4,
2005
+ "excerpt": "Transactions or commands are initially submitted to the contract, which then requires the designated participants to sign off using their private keys. These signatures are then collected by the contract."
2006
+ },
2007
+ {
2008
+ "id": "3-signature-verification-and-execution",
2009
+ "title": "3. Signature Verification and Execution",
2010
+ "level": 4,
2011
+ "excerpt": "When the contract gathers enough signatures to meet the preset threshold, the transaction is deemed valid and executes as planned."
2012
+ },
2013
+ {
2014
+ "id": "conclusion",
2015
+ "title": "Conclusion",
2016
+ "level": 3,
2017
+ "excerpt": "Multi Sig wallets impose substantial demands on blockchain contract capabilities, which may limit their compatibility. Each transaction requires on chain confirmation, which can result in high transaction fees, particularly on networks like Ethereum where costs are notoriously high. Furthermore, Mul"
2018
+ }
2019
+ ],
2020
+ "excerpt": "Multi Signature (Multi Sig) is a security feature used on blockchain platforms like Bitcoin or through smart contracts that require multiple parties to approve a transaction before it can be executed. This setup involves setting rules for multiple authorized accounts to ensure that a transaction onl",
2021
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/MPCvsMultiSig"
2022
+ },
2023
+ {
2024
+ "path": "ContinuumDAO/MPC/MPCvsOthers",
2025
+ "title": "MPC vs Others",
2026
+ "section": "MPC (Multi Party Computation)",
2027
+ "headings": [
2028
+ "MPC vs Others"
2029
+ ],
2030
+ "sections": [
2031
+ {
2032
+ "id": "mpc-vs-others",
2033
+ "title": "MPC vs Others",
2034
+ "level": 2,
2035
+ "excerpt": "The blockchain market is flourishing, bolstered by ongoing investments from the capital markets and continuous innovations from the technical community. These efforts are advancing blockchain technology to support widespread commercial applications. Presently, to improve security and decentralizatio"
2036
+ }
2037
+ ],
2038
+ "excerpt": "The blockchain market is flourishing, bolstered by ongoing investments from the capital markets and continuous innovations from the technical community. These efforts are advancing blockchain technology to support widespread commercial applications. Presently, to improve security and decentralizatio",
2039
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/MPCvsOthers"
2040
+ },
2041
+ {
2042
+ "path": "ContinuumDAO/MPC/MPCvsZK",
2043
+ "title": "MPC vs ZK",
2044
+ "section": "MPC (Multi Party Computation)",
2045
+ "headings": [
2046
+ "MPC vs ZK"
2047
+ ],
2048
+ "sections": [
2049
+ {
2050
+ "id": "mpc-vs-zk",
2051
+ "title": "MPC vs ZK",
2052
+ "level": 2,
2053
+ "excerpt": "Zero Knowledge Proof (ZK) has emerged as a significant innovation in cryptography over the last two years. Zero knowledge proof is an advanced area of study that requires deep knowledge of mathematics and cryptography, making it challenging to grasp. Essentially, it allows someone to prove they have"
2054
+ }
2055
+ ],
2056
+ "excerpt": "Zero Knowledge Proof (ZK) has emerged as a significant innovation in cryptography over the last two years. Zero knowledge proof is an advanced area of study that requires deep knowledge of mathematics and cryptography, making it challenging to grasp. Essentially, it allows someone to prove they have",
2057
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/MPCvsZK"
2058
+ },
2059
+ {
2060
+ "path": "ContinuumDAO/MPC/MainFeatures",
2061
+ "title": "Main Features",
2062
+ "section": "MPC (Multi Party Computation)",
2063
+ "headings": [
2064
+ "Main Features",
2065
+ "1. Decentralization",
2066
+ "2. Security",
2067
+ "3. High Compatibility and Scalability"
2068
+ ],
2069
+ "sections": [
2070
+ {
2071
+ "id": "main-features",
2072
+ "title": "Main Features",
2073
+ "level": 2,
2074
+ "excerpt": "The implementation and security of the MPC protocol are ensured by peer reviewed threshold signature schemes — CGGMP24 for ECDSA and FROST for EdDSA — maintained by the Lockness project under LF Decentralized Trust (Linux Foundation), together with secret sharing, homomorphic encryption, commitment "
2075
+ },
2076
+ {
2077
+ "id": "1-decentralization",
2078
+ "title": "1. Decentralization",
2079
+ "level": 4,
2080
+ "excerpt": "The private key is jointly held by multiple participants without a single centralized control point. The setting of thresholds aligns with the essence of blockchain, which relies on the consensus of the majority of nodes."
2081
+ },
2082
+ {
2083
+ "id": "2-security",
2084
+ "title": "2. Security",
2085
+ "level": 4,
2086
+ "excerpt": "Even if some nodes are compromised, as long as the threshold is not met, the private key cannot be fully disclosed. It also allows for proactive distributed key updates before malicious attackers collect enough private key fragments."
2087
+ },
2088
+ {
2089
+ "id": "3-high-compatibility-and-scalability",
2090
+ "title": "3. High Compatibility and Scalability",
2091
+ "level": 4,
2092
+ "excerpt": "Compatible with over 95% of blockchains, whether EVM or non EVM. It can dynamically adjust the number of nodes participating in signing and the threshold values, ensuring forward compatibility (i.e., the public key remains unchanged before and after threshold adjustments)."
2093
+ }
2094
+ ],
2095
+ "excerpt": "The implementation and security of the MPC protocol are ensured by peer reviewed threshold signature schemes — CGGMP24 for ECDSA and FROST for EdDSA — maintained by the Lockness project under LF Decentralized Trust (Linux Foundation), together with secret sharing, homomorphic encryption, commitment ",
2096
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/MainFeatures"
2097
+ },
2098
+ {
2099
+ "path": "ContinuumDAO/MPC/TypicalUseCases",
2100
+ "title": "Typical Use Cases",
2101
+ "section": "MPC (Multi Party Computation)",
2102
+ "headings": [
2103
+ "Typical Use Cases",
2104
+ "Empowering Decentralization in Dapps",
2105
+ "Decentralized Wallets Using MPC Technology",
2106
+ "Oracle Enhancements Through MPC",
2107
+ "Cross-Chain Communication",
2108
+ "Typical Use Cases"
2109
+ ],
2110
+ "sections": [
2111
+ {
2112
+ "id": "typical-use-cases",
2113
+ "title": "Typical Use Cases",
2114
+ "level": 2,
2115
+ "excerpt": "We provide versatile options for developers, allowing them to either operate their own nodes or select nodes with strong reputations or robust security deposits. Nodes can optionally add a Decentralized Identity, verifiable by Continuum's Committee. MPC technology is effectively utilized in decentra"
2116
+ },
2117
+ {
2118
+ "id": "empowering-decentralization-in-dapps",
2119
+ "title": "Empowering Decentralization in Dapps",
2120
+ "level": 4,
2121
+ "excerpt": "We provide versatile options for developers, allowing them to either operate their own nodes or select nodes with strong reputations or robust security deposits. Nodes can optionally add a Decentralized Identity, verifiable by Continuum's Committee."
2122
+ },
2123
+ {
2124
+ "id": "decentralized-wallets-using-mpc-technology",
2125
+ "title": "Decentralized Wallets Using MPC Technology",
2126
+ "level": 4,
2127
+ "excerpt": "MPC technology is effectively utilized in decentralized wallets. Here, multiple participants jointly manage a private key, with each holding only a part of it. Transactions on jointly controlled digital assets can only be executed when a sufficient number of users, who meet a predetermined threshold"
2128
+ },
2129
+ {
2130
+ "id": "oracle-enhancements-through-mpc",
2131
+ "title": "Oracle Enhancements Through MPC",
2132
+ "level": 4,
2133
+ "excerpt": "Our MPC technology also enhances blockchain oracle systems by decentralizing them, which improves the reliability and security of oracle data. The threshold consensus mechanism of MPC ensures that only when a sufficient number of oracle nodes agree on data and sign it, is the data considered trustwo"
2134
+ },
2135
+ {
2136
+ "id": "cross-chain-communication",
2137
+ "title": "Cross-Chain Communication",
2138
+ "level": 4,
2139
+ "excerpt": "Currently, blockchains operate like isolated data islands, or silos, with no interaction between them. For instance, assets on the Bitcoin blockchain are not visible on the Ethereum blockchain, and Ethereum smart contracts cannot interact with those on the Polygon chain. This isolation limits the li"
2140
+ },
2141
+ {
2142
+ "id": "typical-use-cases",
2143
+ "title": "Typical Use Cases",
2144
+ "level": 3,
2145
+ "excerpt": "Cross chain Liquidity Network Intent cross chain Solvers Cross chain Router Cross chain Oracles Interoperability Dapp SDK Interoperability GameFi SDK Cross on chain Governance Cross chain Reputation Cross chain Encrypted Messaging"
2146
+ }
2147
+ ],
2148
+ "excerpt": "We provide versatile options for developers, allowing them to either operate their own nodes or select nodes with strong reputations or robust security deposits. Nodes can optionally add a Decentralized Identity, verifiable by Continuum's Committee. MPC technology is effectively utilized in decentra",
2149
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/TypicalUseCases"
2150
+ },
2151
+ {
2152
+ "path": "ContinuumDAO/MPC/WhatIsMPC",
2153
+ "title": "What is MPC?",
2154
+ "section": "MPC (Multi Party Computation)",
2155
+ "headings": [
2156
+ "What is MPC?"
2157
+ ],
2158
+ "sections": [
2159
+ {
2160
+ "id": "what-is-mpc",
2161
+ "title": "What is MPC?",
2162
+ "level": 2,
2163
+ "excerpt": "MPC is an innovative cryptographic technology that utilizes distributed computing and cryptographic algorithms to securely perform collaborative calculations without the need for any trusted third party. Participants carry out parts of a task distributively by following established cryptographic pro"
2164
+ }
2165
+ ],
2166
+ "excerpt": "MPC is an innovative cryptographic technology that utilizes distributed computing and cryptographic algorithms to securely perform collaborative calculations without the need for any trusted third party. Participants carry out parts of a task distributively by following established cryptographic pro",
2167
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPC/WhatIsMPC"
2168
+ },
2169
+ {
2170
+ "path": "ContinuumDAO/MPCSigner/ConfiguredNodes",
2171
+ "title": "Configured Nodes",
2172
+ "section": "Creating an MPC Signer",
2173
+ "headings": [
2174
+ "Configured Nodes",
2175
+ "Related"
2176
+ ],
2177
+ "sections": [
2178
+ {
2179
+ "id": "configured-nodes",
2180
+ "title": "Configured Nodes",
2181
+ "level": 2,
2182
+ "excerpt": "Once a few collaborators have each created their own nodes and have them listed in their configs.yaml file in their node, they should appear in the Configured Node Keys section of the Groups page in the MPA wallet <img src=\"/ media/Configured node keys.png\" alt=\"\"/ If any nodes are not running, then"
2183
+ },
2184
+ {
2185
+ "id": "related",
2186
+ "title": "Related",
2187
+ "level": 3,
2188
+ "excerpt": "Install a node Groups KeyGens Overview Backup and restoration — spare nodes and rebuilds"
2189
+ }
2190
+ ],
2191
+ "excerpt": "Once a few collaborators have each created their own nodes and have them listed in their configs.yaml file in their node, they should appear in the Configured Node Keys section of the Groups page in the MPA wallet <img src=\"/ media/Configured node keys.png\" alt=\"\"/ If any nodes are not running, then",
2192
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSigner/ConfiguredNodes"
2193
+ },
2194
+ {
2195
+ "path": "ContinuumDAO/MPCSigner/CreateMPCSigner",
2196
+ "title": "Creating an MPC Signer",
2197
+ "section": "Creating an MPC Signer",
2198
+ "headings": [
2199
+ "Creating an MPC Signer",
2200
+ "Related"
2201
+ ],
2202
+ "sections": [
2203
+ {
2204
+ "id": "creating-an-mpc-signer",
2205
+ "title": "Creating an MPC Signer",
2206
+ "level": 2,
2207
+ "excerpt": "Nodes in ContinuumDAO play two differentiated roles (same install — different Group / KeyGen choices): 1. MPA wallet — secure asset custody without a full Private Key; optional AI with a human Accept circuit breaker. Simplest: 2/2 multi agree . Start: MPA wallet Overview → Install. 2. Continuum cros"
2208
+ },
2209
+ {
2210
+ "id": "related",
2211
+ "title": "Related",
2212
+ "level": 3,
2213
+ "excerpt": "Overview Install a node Backup and restoration Configure the AI harness"
2214
+ }
2215
+ ],
2216
+ "excerpt": "Nodes in ContinuumDAO play two differentiated roles (same install — different Group / KeyGen choices): 1. MPA wallet — secure asset custody without a full Private Key; optional AI with a human Accept circuit breaker. Simplest: 2/2 multi agree . Start: MPA wallet Overview → Install. 2. Continuum cros",
2217
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSigner/CreateMPCSigner"
2218
+ },
2219
+ {
2220
+ "path": "ContinuumDAO/MPCSigner/Groups",
2221
+ "title": "Groups",
2222
+ "section": "Creating an MPC Signer",
2223
+ "headings": [
2224
+ "Related"
2225
+ ],
2226
+ "sections": [
2227
+ {
2228
+ "id": "related",
2229
+ "title": "Related",
2230
+ "level": 3,
2231
+ "excerpt": "Configured Nodes KeyGens Install a node — Post install steps Overview Creating an MPC Signer"
2232
+ }
2233
+ ],
2234
+ "excerpt": "Creating a Group A node Group is a subset of the Configured Nodes that have decided to jointly sign transactions using MPC. At this stage, the Group's purpose is not defined. That requires a further step (KeyGen creation) — multi agree for an MPA wallet, or tx check if you later aim to secure Contin",
2235
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSigner/Groups"
2236
+ },
2237
+ {
2238
+ "path": "ContinuumDAO/MPCSigner/JoinNetwork",
2239
+ "title": "Joining the Network",
2240
+ "section": "Creating an MPC Signer",
2241
+ "headings": [
2242
+ "Joining the Continuum (MPC network)",
2243
+ "Eligibility (technical floor)",
2244
+ "Related"
2245
+ ],
2246
+ "sections": [
2247
+ {
2248
+ "id": "joining-the-continuum-mpc-network",
2249
+ "title": "Joining the Continuum (MPC network)",
2250
+ "level": 2,
2251
+ "excerpt": "This page is about the second role of Continuum nodes: securing cross chain C3Caller traffic and earning rewards — not the minimum setup for a personal MPA wallet. For a personal / AI controlled MPA wallet , you only need a small multi agree Group (simplest: 2/2 ). See MPA wallet Overview and KeyGen"
2252
+ },
2253
+ {
2254
+ "id": "eligibility-technical-floor",
2255
+ "title": "Eligibility (technical floor)",
2256
+ "level": 3,
2257
+ "excerpt": "To be eligible to join the Continuum network, a single Group of 3 or more nodes must create: (1) A KeyGen with MsgCheck tx check and with a threshold of at least 3 (so 3 or more nodes must Accept to sign) and with a KeyType secp256k1 for Ethereum and EVM chains (and some others). (2) The same as (1)"
2258
+ },
2259
+ {
2260
+ "id": "related",
2261
+ "title": "Related",
2262
+ "level": 3,
2263
+ "excerpt": "Overview — MPA wallet vs cross chain roles KeyGens — tx check vs multi agree Groups Creating an MPC Signer C3Caller Overview"
2264
+ }
2265
+ ],
2266
+ "excerpt": "This page is about the second role of Continuum nodes: securing cross chain C3Caller traffic and earning rewards — not the minimum setup for a personal MPA wallet. For a personal / AI controlled MPA wallet , you only need a small multi agree Group (simplest: 2/2 ). See MPA wallet Overview and KeyGen",
2267
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSigner/JoinNetwork"
2268
+ },
2269
+ {
2270
+ "path": "ContinuumDAO/MPCSigner/KeyGens",
2271
+ "title": "KeyGens",
2272
+ "section": "Creating an MPC Signer",
2273
+ "headings": [
2274
+ "Creating a KeyGen",
2275
+ "KeyGen Agreement",
2276
+ "Related"
2277
+ ],
2278
+ "sections": [
2279
+ {
2280
+ "id": "creating-a-keygen",
2281
+ "title": "Creating a KeyGen",
2282
+ "level": 2,
2283
+ "excerpt": "A key (or KeyGen) contains the information that each node needs to take part in the joint creation of the Private Key to collectively sign transactions. A KeyGen has a public key but NO PRIVATE KEY . A new KeyGen can be requested by anyone in a Group. If all nodes in the Group agree to Join, then th"
2284
+ },
2285
+ {
2286
+ "id": "keygen-agreement",
2287
+ "title": "KeyGen Agreement",
2288
+ "level": 3,
2289
+ "excerpt": "Once the KeyGen Request has been submitted the originator sees their request in their Pending table <img src=\"/ media/KeyGen pending creator.png\" alt=\"\"/ Their own Node Key has a green tick (they agree automatically) and other nodes show 'waiting' whilst these other nodes decide if they want to agre"
2290
+ },
2291
+ {
2292
+ "id": "related",
2293
+ "title": "Related",
2294
+ "level": 3,
2295
+ "excerpt": "Groups Configured Nodes Overview — 2/2 vs cross chain roles MPC Accept/Reject loop Configure the AI harness Eject to Private Key Joining the Continuum — tx check KeyGens for C3Caller"
2296
+ }
2297
+ ],
2298
+ "excerpt": "A key (or KeyGen) contains the information that each node needs to take part in the joint creation of the Private Key to collectively sign transactions. A KeyGen has a public key but NO PRIVATE KEY . A new KeyGen can be requested by anyone in a Group. If all nodes in the Group agree to Join, then th",
2299
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSigner/KeyGens"
2300
+ },
2301
+ {
2302
+ "path": "ContinuumDAO/MPCSignerConfiguredNodes",
2303
+ "title": "MPCSignerConfiguredNodes",
2304
+ "section": "",
2305
+ "headings": [],
2306
+ "sections": [],
2307
+ "excerpt": "",
2308
+ "url": "https://docs.continuumdao.org/ContinuumDAO/MPCSignerConfiguredNodes"
2309
+ },
2310
+ {
2311
+ "path": "ContinuumDAO/RunningInstructions/NodeRunningInstruction",
2312
+ "title": "Add this line at the end of the file (replace 'mpcnode' with your username):",
2313
+ "section": "Running an MPC Node (advanced / manual/ AI provisioning)",
2314
+ "headings": [
2315
+ "Node Running Instructions",
2316
+ "Type of Machine",
2317
+ "Quick Start",
2318
+ "Add this line at the end of the file (replace 'mpcnode' with your username):",
2319
+ "Or for password-protected sudo (more secure):",
2320
+ "Save and exit (Ctrl+X, then Y, then Enter in nano)",
2321
+ "Related"
2322
+ ],
2323
+ "sections": [
2324
+ {
2325
+ "id": "node-running-instructions",
2326
+ "title": "Node Running Instructions",
2327
+ "level": 2,
2328
+ "excerpt": "A lot more details about setting up an MPC node is in our github here. This covers installation of different OS types and how to resolve any issues that may arise. If you are only setting up a Multi Party Agent wallet (secure custody / AI with human Accept — often 2/2 ), then you can use a home mach"
2329
+ },
2330
+ {
2331
+ "id": "type-of-machine",
2332
+ "title": "Type of Machine",
2333
+ "level": 3,
2334
+ "excerpt": "If you are only setting up a Multi Party Agent wallet (secure custody / AI with human Accept — often 2/2 ), then you can use a home machine with Linux (e.g. Ubuntu/Debian/Mint). You will need at least 16 GB of RAM and 6 CPU cores (most laptops are sufficient). See MPA wallet Overview for the twofold"
2335
+ },
2336
+ {
2337
+ "id": "quick-start",
2338
+ "title": "Quick Start",
2339
+ "level": 3,
2340
+ "excerpt": "We briefly cover a Quick Start for an Ubuntu/Debian VPS here. (1) As root or sudo user, create another user called mpcnode and give it sudo access bash sudo adduser mpcnode sudo usermod aG sudo mpcnode It is useful to avoid having to enter a password for the sudo command. To avoid this, on each node"
2341
+ },
2342
+ {
2343
+ "id": "add-this-line-at-the-end-of-the-file-replace-mpcnode-with-your-username",
2344
+ "title": "Add this line at the end of the file (replace 'mpcnode' with your username):",
2345
+ "level": 1,
2346
+ "excerpt": "mpcnode ALL=(ALL:ALL) NOPASSWD: ALL"
2347
+ },
2348
+ {
2349
+ "id": "or-for-password-protected-sudo-more-secure",
2350
+ "title": "Or for password-protected sudo (more secure):",
2351
+ "level": 1,
2352
+ "excerpt": "mpcnode ALL=(ALL:ALL) ALL"
2353
+ },
2354
+ {
2355
+ "id": "save-and-exit-ctrl-x-then-y-then-enter-in-nano",
2356
+ "title": "Save and exit (Ctrl+X, then Y, then Enter in nano)",
2357
+ "level": 1,
2358
+ "excerpt": "(2) Log in as user mpcnode (e.g. ssh mpcnode@<your vps ip or: su mpcnode) (3) Install all software bash sudo apt update && \\ sudo apt install y \\ ca certificates \\ curl \\ wget \\ git \\ openssl \\ gnupg \\ iptables \\ docker.io \\ docker compose \\ python3 \\ python3 pip \\ python3 ruamel.yaml \\ python3 cryp"
2359
+ },
2360
+ {
2361
+ "id": "related",
2362
+ "title": "Related",
2363
+ "level": 3,
2364
+ "excerpt": "Install a node — preferred node map installer (humans) + AI one shot links CREATE NODE ONESHOT.md — AI agent VPS one shot Backup and restoration Overview Configured Nodes Joining the Continuum mpc config README · AGENTS.md"
2365
+ }
2366
+ ],
2367
+ "excerpt": "For almost all users, follow the user guide Install a node (node map + button at https://mpa.continuumdao.org/node map). You can create a node on a laptop or PC, or on a remote VPS (Linux / Windows 11 / macOS). This page is the advanced / manual path. AI agents creating a greenfield Ubuntu/Debian VP",
2368
+ "url": "https://docs.continuumdao.org/ContinuumDAO/RunningInstructions/NodeRunningInstruction"
2369
+ },
2370
+ {
2371
+ "path": "ContinuumDAO/WhitePaper",
2372
+ "title": "ContinuumDAO White Paper",
2373
+ "section": "",
2374
+ "headings": [
2375
+ "ContinuumDAO White Paper",
2376
+ "Welcome to Continuum",
2377
+ "About ContinuumDAO",
2378
+ "Why Does Having Open Public Infrastructure Matter?",
2379
+ "Why is the ContinuumDAO Mission Important?",
2380
+ "Lack of Open Cross-Chain Fabrics",
2381
+ "Security Relies on ‘Staking’ Alone",
2382
+ "The Number of Chains in a Network is not Scaleable",
2383
+ "Technical Challenges in Expanding the Cross-Chain Network",
2384
+ "Lack of Protocol Level Security",
2385
+ "How is ContinuumDAO Different?",
2386
+ "The Current Situation",
2387
+ "ContinuumDAO Roadmap",
2388
+ "Governance",
2389
+ "**Why Have we Built a DAO?**",
2390
+ "Governance Model",
2391
+ "DAO incentive system",
2392
+ "The ContinuumDAO Token",
2393
+ "Vested Token Model",
2394
+ "The MPC Network and the MPA Wallet",
2395
+ "Nodes — the core building block",
2396
+ "The Multi-Party Agent (MPA) wallet",
2397
+ "Fully decentralized custody",
2398
+ "Public MPC nodes and rewards",
2399
+ "C3Caller Cross-chain Message Passing",
2400
+ "Tokenomics",
2401
+ "Allocation",
2402
+ "Utility",
2403
+ "Ecosystem Development"
2404
+ ],
2405
+ "sections": [
2406
+ {
2407
+ "id": "continuumdao-white-paper",
2408
+ "title": "ContinuumDAO White Paper",
2409
+ "level": 1,
2410
+ "excerpt": "15th August 2026"
2411
+ },
2412
+ {
2413
+ "id": "welcome-to-continuum",
2414
+ "title": "Welcome to Continuum",
2415
+ "level": 1,
2416
+ "excerpt": "An open public cross chain network secured by Multi Party Computation — and the Multi Party Agent (MPA) wallet , an AI first flagship MPC product (with a rich frontend for full manual control) for custody without a Private Key , AI assisted trading , and optional cross chain signing rewards — run as"
2417
+ },
2418
+ {
2419
+ "id": "about-continuumdao",
2420
+ "title": "About ContinuumDAO",
2421
+ "level": 2,
2422
+ "excerpt": "ContinuumDAO is a community that is collectively building a future in which all blockchains are linked, to enable the integration of decentralized blockchain ledgers for all dApps. We realise that the entirety of finance and other ‘trust’ based networks will transition to web3 in the next few years "
2423
+ },
2424
+ {
2425
+ "id": "why-does-having-open-public-infrastructure-matter",
2426
+ "title": "Why Does Having Open Public Infrastructure Matter?",
2427
+ "level": 2,
2428
+ "excerpt": "A better question is why would anyone who wishes to create a multi chain dApp rely on an infrastructure that wasn’t completely decentralized, or which was owned by a company, knowing that this could disappear at anytime? ContinuumDAO has sophisticated DAO governed smart contracts that do not rely on"
2429
+ },
2430
+ {
2431
+ "id": "why-is-the-continuumdao-mission-important",
2432
+ "title": "Why is the ContinuumDAO Mission Important?",
2433
+ "level": 2,
2434
+ "excerpt": "The existing landscape of web3 is confusing for new and even existing users. Continuum will solve some of the biggest pain points how to utilize AI safely for on chain trading and how decentralized applications (dApps) securely communicate between any blockchain that supports a contract based system"
2435
+ },
2436
+ {
2437
+ "id": "lack-of-open-cross-chain-fabrics",
2438
+ "title": "Lack of Open Cross-Chain Fabrics",
2439
+ "level": 3,
2440
+ "excerpt": "Existing cross chain architectures are sometimes ‘black boxes’, so that no one is aware of who is signing transactions on destination chains. Others are secured by nodes run by a few individuals, often team members. They do not allow anyone to contribute to cross chain signing. They are not ‘public’"
2441
+ },
2442
+ {
2443
+ "id": "security-relies-on-staking-alone",
2444
+ "title": "Security Relies on ‘Staking’ Alone",
2445
+ "level": 3,
2446
+ "excerpt": "When a cross chain messaging system relies on node runners staking on their nodes alone, then the issue, as the volume grows, is that the value of the staking would become low compared to the value of the traffic itself. There is not a good enough incentive to avoid foul play. Cross chain signing mu"
2447
+ },
2448
+ {
2449
+ "id": "the-number-of-chains-in-a-network-is-not-scaleable",
2450
+ "title": "The Number of Chains in a Network is not Scaleable",
2451
+ "level": 3,
2452
+ "excerpt": "Sometimes (and this includes some of the most popular bridges) the cross chain signing relies on multi signature wallets. The issue here is that multiple signatures are costly. It is hard to upgrade every node to include a new chain that they must sign on. This will prevent support for all but a few"
2453
+ },
2454
+ {
2455
+ "id": "technical-challenges-in-expanding-the-cross-chain-network",
2456
+ "title": "Technical Challenges in Expanding the Cross-Chain Network",
2457
+ "level": 3,
2458
+ "excerpt": "Systems secured by zkProofs are difficult to expand. The zkProof is computationally expensive and requires expensive hardware, which can be challenging for most node runners to implement. Generating a zkProof from an EVM to a non EVM is difficult (impossible?) to achieve."
2459
+ },
2460
+ {
2461
+ "id": "lack-of-protocol-level-security",
2462
+ "title": "Lack of Protocol Level Security",
2463
+ "level": 3,
2464
+ "excerpt": "Systems that use zkProofs and relayers of those proofs do not have protocol level security. It is up to the dApp to choose the relayer and they can switch at any time from within their frontend to an insecure or malicious relayer, unbeknown to the users of those dApps."
2465
+ },
2466
+ {
2467
+ "id": "how-is-continuumdao-different",
2468
+ "title": "How is ContinuumDAO Different?",
2469
+ "level": 2,
2470
+ "excerpt": "Our cross chain network, called the Continuum, is run by a DAO and designed for autonomous operation. All critical operations and financial transactions depend on on chain voting. There is no central ‘team’. The MPA wallet is a core MPC product: an AI first wallet with a rich frontend for complete m"
2471
+ },
2472
+ {
2473
+ "id": "the-current-situation",
2474
+ "title": "The Current Situation",
2475
+ "level": 2,
2476
+ "excerpt": "ContinuumDAO was formed in August 2023 by a small community. At this time a simple non transferable ERC20 token called CTMDAOVOTE was airdropped to the community to allow voting. The DAO created its Constitution, that can be read here. The DAO also created its Mission and Vision. The formation of an"
2477
+ },
2478
+ {
2479
+ "id": "continuumdao-roadmap",
2480
+ "title": "ContinuumDAO Roadmap",
2481
+ "level": 3,
2482
+ "excerpt": "(1) Formation of a company in RAKDAO to provide legal certainty for ContinuumDAO. Estimated incorporation date is in Q4 2026 (2) Roll out of the Multi Party Agent (MPA) wallet and testing with the community — MPC custody without a Private Key, AI assisted trading harness, and optional opt in to cros"
2483
+ },
2484
+ {
2485
+ "id": "governance",
2486
+ "title": "Governance",
2487
+ "level": 2,
2488
+ "excerpt": "The adoption of a DAO for Continuum is not just a governance choice; it is a strategic necessity to unlock the full potential of multi chain dApps. By leveraging the DAO model, we ensure that the services remain decentralized and transparent. Here’s why a DAO is the ideal structure to control permis"
2489
+ },
2490
+ {
2491
+ "id": "why-have-we-built-a-dao",
2492
+ "title": "Why Have we Built a DAO?",
2493
+ "level": 3,
2494
+ "excerpt": "The adoption of a DAO for Continuum is not just a governance choice; it is a strategic necessity to unlock the full potential of multi chain dApps. By leveraging the DAO model, we ensure that the services remain decentralized and transparent. Here’s why a DAO is the ideal structure to control permis"
2495
+ },
2496
+ {
2497
+ "id": "governance-model",
2498
+ "title": "Governance Model",
2499
+ "level": 1,
2500
+ "excerpt": "ContinuumDAO adheres to a Constitution that is here . The Constitution also states how these rules may be changed by the DAO. All business of the DAO is kept in our Forum here, especially the formation of new ideas and development of new proposals. Only proposals that conform to the Mission and Visi"
2501
+ },
2502
+ {
2503
+ "id": "dao-incentive-system",
2504
+ "title": "DAO incentive system",
2505
+ "level": 3,
2506
+ "excerpt": "The ContinuumDAO may utilise tokens and the welfare system to boost the performance of all DAO members. Full time contributors and guild leaders will receive monthly payment to attract and maintain dedicated workers, as in any traditional business. MPC node runners and MPA wallet operators who parti"
2507
+ },
2508
+ {
2509
+ "id": "the-continuumdao-token",
2510
+ "title": "The ContinuumDAO Token",
2511
+ "level": 2,
2512
+ "excerpt": "ContinuumDAO has implemented its token model on Linea mainnet. Any holder of ContinuumDAO’s token (called CTM) can stake them into an NFT called veCTM (see the code on github). There will be a buy pressure for CTM, since it is used as a payment token by dApps for cross chain services. This will coun"
2513
+ },
2514
+ {
2515
+ "id": "vested-token-model",
2516
+ "title": "Vested Token Model",
2517
+ "level": 3,
2518
+ "excerpt": "ContinuumDAO has implemented its token model on Linea mainnet. Any holder of ContinuumDAO’s token (called CTM) can stake them into an NFT called veCTM (see the code on github). There will be a buy pressure for CTM, since it is used as a payment token by dApps for cross chain services. This will coun"
2519
+ },
2520
+ {
2521
+ "id": "the-mpc-network-and-the-mpa-wallet",
2522
+ "title": "The MPC Network and the MPA Wallet",
2523
+ "level": 2,
2524
+ "excerpt": "ContinuumDAO’s MPC network, Multi Party Agent (MPA) wallet , and staking control panel are currently being built. Through the control panel, anyone will be able to see which nodes are signing cross chain messages and claim CTM rewards for qualified participation. ContinuumDAO is the first public MPC"
2525
+ },
2526
+ {
2527
+ "id": "nodes-the-core-building-block",
2528
+ "title": "Nodes — the core building block",
2529
+ "level": 3,
2530
+ "excerpt": "MPC nodes are the atomic unit of the Continuum. A wallet owner (or community) installs node software, adds Configured Nodes , forms an MPC Group , and creates one or more KeyGens — shared addresses with no full Private Key on any machine. Groups choose their own size and threshold (e.g. 2/2 for AI +"
2531
+ },
2532
+ {
2533
+ "id": "the-multi-party-agent-mpa-wallet",
2534
+ "title": "The Multi-Party Agent (MPA) wallet",
2535
+ "level": 3,
2536
+ "excerpt": "The MPA wallet (docs) is ContinuumDAO’s flagship MPC product — AI first , with a rich frontend for full manual use: AI first control — a built in AI agent harness on every node proposes trades, runs technical analysis, and invokes DeFi protocol tools; humans (or other nodes) Accept or Reject before "
2537
+ },
2538
+ {
2539
+ "id": "fully-decentralized-custody",
2540
+ "title": "Fully decentralized custody",
2541
+ "level": 3,
2542
+ "excerpt": "Many MPC wallets rely on vendor hosted databases to store key shares. The MPA wallet does not : threshold shares and encrypted wallet state live only on nodes deployed by users . The wallet software is self contained on each node ; the sole on chain dependency for fees is a DAO governed smart contra"
2543
+ },
2544
+ {
2545
+ "id": "public-mpc-nodes-and-rewards",
2546
+ "title": "Public MPC nodes and rewards",
2547
+ "level": 3,
2548
+ "excerpt": "Instructions for running a node are in our documentation. After creating a node, operators can attach veCTM and optionally identify themselves on chain. Subscription through staking: anyone who stakes veCTM on their node qualifies for free MPA wallet usage up to the free signature limit — a DAO gove"
2549
+ },
2550
+ {
2551
+ "id": "c3caller-cross-chain-message-passing",
2552
+ "title": "C3Caller Cross-chain Message Passing",
2553
+ "level": 3,
2554
+ "excerpt": "C3Caller (see the code on github) is the system added to each blockchain that can interface with the MPC network to allow a dApp on one chain to sign a contract function on another chain. C3Caller is not yet live — the Relayer, Scanner, and public contract deployments are in final testing. Full deta"
2555
+ },
2556
+ {
2557
+ "id": "tokenomics",
2558
+ "title": "Tokenomics",
2559
+ "level": 2,
2560
+ "excerpt": "CTM is a multi chain token, that can only be minted on Ethereum by Governance voting. It has a maximum Total Supply of 100 million, but not all of it is minted yet. As of 15 August 2026 , the circulating supply is 16.8 million CTM , all locked in veCTM ; the DAO Treasury holds a further 3.5 million "
2561
+ },
2562
+ {
2563
+ "id": "allocation",
2564
+ "title": "Allocation",
2565
+ "level": 3,
2566
+ "excerpt": "<img src=\"/ media/ctm distribution.png\" alt=\"\"/ DAO Treasury 45% The spending of the Treasury will be determined solely through on chain voting using veCTM. The DAO, through voting, can allocate tokens for new projects, payment for services, or whatever they wish to, so long as it complies with the "
2567
+ },
2568
+ {
2569
+ "id": "utility",
2570
+ "title": "Utility",
2571
+ "level": 3,
2572
+ "excerpt": "MPA wallet — AI first MPC self custody on user run nodes , with a rich frontend for full manual control (no vendor database of key shares), direct web3 protocol trading without a Private Key, encrypted backup / recovery, optional eject to a standard private key wallet, and AI assisted workflows C3Ca"
2573
+ },
2574
+ {
2575
+ "id": "ecosystem-development",
2576
+ "title": "Ecosystem Development",
2577
+ "level": 1,
2578
+ "excerpt": "There will be a grant program for new projects using Continuum. This could be either a grant of CTM, or other tokens from the treasury, or a time limited reduction in fees for usage of Continuum. The DAO will assist new projects that wish to use Continuum. This will be in the form of coding support,"
2579
+ }
2580
+ ],
2581
+ "excerpt": "15th August 2026 An open public cross chain network secured by Multi Party Computation — and the Multi Party Agent (MPA) wallet , an AI first flagship MPC product (with a rich frontend for full manual control) for custody without a Private Key , AI assisted trading , and optional cross chain signing",
2582
+ "url": "https://docs.continuumdao.org/ContinuumDAO/WhitePaper"
2583
+ },
2584
+ {
2585
+ "path": "README",
2586
+ "title": "Who are we?",
2587
+ "section": "",
2588
+ "headings": [],
2589
+ "sections": [],
2590
+ "excerpt": "<h1 ContinuumDAO</h1 Meet the ContinuumDAO A trustless Secure Multi Party Computation node network called the Continuum and run worldwide by a DAO. <! <span style=\"color:green;font weight:700;font size:20px\" markdown color font styles </span",
2591
+ "url": "https://docs.continuumdao.org/README"
2592
+ }
2593
+ ]
2594
+ }