Skip to content

docs: Dogecoin chain fusion guide#95

Merged
marc0olo merged 3 commits into
mainfrom
docs/guides-chain-fusion-dogecoin
Apr 16, 2026
Merged

docs: Dogecoin chain fusion guide#95
marc0olo merged 3 commits into
mainfrom
docs/guides-chain-fusion-dogecoin

Conversation

@marc0olo
Copy link
Copy Markdown
Member

Summary

  • Beta status notice; how the integration works (Dogecoin canister + threshold ECDSA)
  • 6-step transaction flow: get public key → derive address → read UTXOs → build tx → sign → submit
  • Dogecoin canister API: get_utxos, get_balance, get_current_fee_percentiles, send_transaction
  • ECDSA key names (test_key_1 / key_1)
  • Rust example for get_balance; full transaction flow links to basic_dogecoin example
  • Comparison table with Bitcoin integration

Sync recommendation

informed by dfinity/portal — docs/developer-docs/multi-chain/dogecoin/

@marc0olo
Copy link
Copy Markdown
Member Author

Review: Dogecoin Integration

Must fix

  • Call::new does not exist in cdk-rs: The Rust code example on line 89 uses Call::new(dogecoin_canister_id(), "dogecoin_get_balance"). This constructor does not exist in ic-cdk. The correct constructors are Call::bounded_wait(...) or Call::unbounded_wait(...). All other uses of the cdk-rs Call API in the codebase (including bitcoin.mdx) use Call::unbounded_wait. Fix: replace Call::new(dogecoin_canister_id(), "dogecoin_get_balance") with Call::unbounded_wait(dogecoin_canister_id(), "dogecoin_get_balance"). Verified against .sources/cdk-rs/ic-cdk/src/call.rsCall::new is absent; Call::bounded_wait and Call::unbounded_wait are the only public constructors.

  • Upstream comment uses escaped HTML syntax: Both HTML comments in the file (lines 105 and 151) use <\\!-- (backslash-escaped) instead of <\!--. In a .md file this is incorrect — the CI upstream-comment check looks for <\!-- Upstream: with standard HTML comment syntax. Fix: replace <\\!-- Needs human verification: with <\!-- Needs human verification: and <\\!-- Upstream: with <\!-- Upstream:. (In .mdx files the syntax is {/* ... */} — but this is a .md file.)

  • NNS link should be internal: Line 141 links to https://learn.internetcomputer.org/hc/en-us/articles/34209524930964 for "Network Nervous System". An internal page docs/concepts/governance.md exists. Per CLAUDE.md: "Link externally when an internal page exists" is listed under Never. Fix: replace the Learn Hub URL with ../../concepts/governance.md.

Suggestions

  • Motoko example absent with no explanation: The page provides only a Rust code example for the "get balance" use case. The bitcoin.mdx page — explicitly referenced as the model — uses tabbed Motoko + Rust examples. While the stub only lists Rust as source material (the basic_dogecoin example is Rust-only), a note that Motoko callers can use the same pattern with actor-based inter-canister calls (as shown in bitcoin.mdx) would help Motoko developers. Alternatively, add a brief Motoko snippet using the actor syntax shown in the ckbtc skill.

  • Canister ID placeholder is prominent in the code example: The placeholder "xxxxxxxxx-xxxxx-xxxxx-xxxxx-xxx" appears in the code example. The verification comment correctly flags this, but developers copy-pasting the example will get a runtime panic at the .expect("Invalid Dogecoin canister ID") call. Consider adding a // Panics at runtime — replace with actual canister ID from https://github.com/dfinity/dogecoin-canister comment inline to make the consequence immediately visible.

  • koinu terminology is unverified: The page states "koinu (1 DOGE = 100,000,000 koinus)" and uses the term throughout. The portal source material (dogecoin/overview.mdx) does not mention "koinu" at all, and neither does any other .sources/ submodule. The term may be correct (it is the Dogecoin equivalent of satoshis) but it is not sourced from available material. The existing <\!-- Needs human verification --> comment addresses canister ID and cycle costs but does not call out the "koinu" unit name. Either add it to the verification flag or confirm from the Dogecoin canister documentation.

  • API method names are unverified: The four API methods listed (dogecoin_get_utxos, dogecoin_get_balance, dogecoin_get_current_fee_percentiles, dogecoin_send_transaction) do not appear in any .sources/ submodule. The <\!-- Needs human verification --> comment covers canister ID and cycle costs but not the method names. A misnamed method causes a runtime error, so these should also be included in the verification scope.

  • Upstream comment omits Learn Hub reference: The stub listed a Learn Hub article (https://learn.internetcomputer.org/hc/en-us/articles/46782835018516) as source material. The <\!-- Upstream: --> comment only lists dfinity/portal and dfinity/examples. If this article was consulted it should be mentioned; if not, the stub's source material should be acknowledged in the PR as intentionally skipped.

Verified

  • Build passes cleanly (npm run build — 0 errors, dogecoin.md produces no warnings).
  • Frontmatter is complete and consistent: title, description, and sidebar.order: 4 all present.
  • No dfx references anywhere in the file.
  • No mo:base imports.
  • File is .md (not .mdx) — correct since the page has no interactive components.
  • All internal links verified:
    • bitcoin.md resolves to bitcoin.mdx (Astro resolves correctly).
    • ../../concepts/chain-fusion.md exists.
    • ../../concepts/chain-key-cryptography.md exists.
    • ../defi/chain-key-tokens.md resolves to chain-key-tokens.mdx (Astro resolves correctly).
  • ECDSA key names test_key_1 and key_1 verified against .sources/portal/docs/references/t-sigs-how-it-works.mdx.
  • ecdsa_public_key and sign_with_ecdsa management canister method names verified against the same source.
  • Call.with_cycles() and .candid_tuple() pattern verified against .sources/cdk-rs/ic-cdk/src/call.rs.
  • <\!-- Upstream: --> comment is present (syntax issue noted above) and sources match the content.
  • Page opens with what the technology is and who it is for — passes reader test.
  • Content structure: orient → explain → code → what's next. Well-structured.
  • ckDOGE (upcoming) status in the comparison table matches supported-chains.mdx in portal.
  • Beta caution admonition matches the portal source wording.

- Replace Call::new with Call::unbounded_wait (Call::new does not exist in ic-cdk)
- Fix escaped HTML comment syntax on verification note (<\\!-- → <\!--)
- Replace Learn Hub NNS link with internal governance.md page
- Add runtime panic warning to placeholder canister ID constant
- Expand verification comment to cover method names and koinu unit name
- Add note about Motoko actor-based inter-canister calls
- Add Learn Hub article to Upstream comment
@marc0olo
Copy link
Copy Markdown
Member Author

Feedback addressed for PR #95 — Dogecoin Integration

Changes applied

Must fix — all three applied:

  1. Call::newCall::unbounded_wait (line 90): Verified against .sources/cdk-rs/ic-cdk/src/call.rsCall::new does not exist; bounded_wait and unbounded_wait are the only public constructors. Replaced with Call::unbounded_wait to match every other cdk-rs usage in the codebase (including bitcoin.mdx).

  2. Escaped HTML comment syntax fixed (line 106): The verification comment used a backslash-escaped form (<\\!--). Fixed to standard HTML comment syntax (<\!--). Note: the <\!-- Upstream: --> comment on line 154 already used correct syntax and was not changed.

  3. NNS link changed to internal (line 144): Replaced the Learn Hub URL https://learn.internetcomputer.org/hc/en-us/articles/34209524930964 with ../../concepts/governance.md. Verified the target file exists at docs/concepts/governance.md.

Suggestions — all five applied:

  1. Canister ID placeholder runtime panic warning (line 66): Added inline comment // Using this placeholder will panic at runtime — replace before deploying. directly below the placeholder constant declaration.

  2. Verification scope expanded (line 106): Updated the verification comment to also cover API method names (dogecoin_get_utxos, dogecoin_get_balance, dogecoin_get_current_fee_percentiles, dogecoin_send_transaction) and the koinu unit name — neither is confirmed in available .sources/ material.

  3. Motoko caller note added (after code block): Added a sentence noting that Motoko canisters can use actor-based inter-canister calls with (with cycles = amount) syntax, matching the pattern mentioned in the Bitcoin integration guide.

  4. Upstream comment updated (line 154): Added the Learn Hub article (https://learn.internetcomputer.org/hc/en-us/articles/46782835018516) to the <\!-- Upstream: --> comment, as it was listed in the stub source material.

Items skipped

None — all feedback items were applied.

Build verification

npm run build completed successfully — 86 pages built, 0 errors, no warnings on dogecoin.md.

@marc0olo marc0olo merged commit 60211d0 into main Apr 16, 2026
1 check passed
@marc0olo marc0olo deleted the docs/guides-chain-fusion-dogecoin branch April 16, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant