Skip to content

Feat: Add Command line guide#153

Merged
musik-c merged 112 commits intomainfrom
EarnCoinPool-patch-1
Feb 26, 2026
Merged

Feat: Add Command line guide#153
musik-c merged 112 commits intomainfrom
EarnCoinPool-patch-1

Conversation

@EarnCoinPool
Copy link
Copy Markdown
Contributor

@EarnCoinPool EarnCoinPool commented Jan 31, 2026

add additional commands and split out into its own page.


Summary by cubic

Added a dedicated, multi-page Bursa CLI guide and linked it from Quick Start. Quick Start now downloads the v0.15.0 Linux binary and links to the guide instead of inline steps.

  • New Features
    • Wallet/API: Create wallet files; run API; view Swagger.
    • Cert: opcert (node.cert); pool register/retire; stake reg/dereg/delegate; Conway DRep reg/dereg, vote delegation, committee hot auth/cold resign. Outputs are cardano-cli compatible.
    • Hash: Blake2b-256 for canonical JSON metadata (pool, DRep) and governance anchor data.
    • Script: Create/validate multisig; add timelocks; derive script address.
    • Address: Build and inspect CIP-19 base/enterprise/reward/pointer; Byron supported.
    • Key: Derive CIP-1852/1853/1855/0105; Calidus (CIP-88/151); VRF/KES (depth 6, 64 periods). Bech32 output; mnemonic via flag/env/file (or seed.txt); optional .skey/.vkey output.

Written for commit aa9338e. Summary will update on new commits.

Summary by CodeRabbit

  • Documentation
    • Updated quick-start to point to a newer binary, replaced an extended CLI walkthrough with a link to the dedicated commands guide, and applied minor formatting tweaks.
    • Added comprehensive Bursa CLI guides: general commands, certificates, hashing, scripts, addresses, and key management—each with usage examples, inputs/outputs, and navigation links.

add additional commands and split out into its own page.

Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 31, 2026

📝 Walkthrough

Walkthrough

The PR updates Bursa docs: the quick-start binary download is bumped from v0.11.1 to v0.15.0; a multi-step wallet creation and API/Swagger section is removed from the quick-start and replaced with a link to a new commands page; and six new CLI reference pages are added for commands covering general CLI, certificates, hashing, scripts, addresses, and key derivation (with examples and anchors).

Possibly related issues

  • blinklabs-io/docs issue 152 — The PR adds and expands Bursa CLI command documentation and adjusts quick-start navigation, which matches the issue's objective to introduce/extend Bursa command guides.
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Feat: Add Command line guide' accurately reflects the main change: adding comprehensive documentation for the Bursa CLI command line guide across multiple new files.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch EarnCoinPool-patch-1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Jan 31, 2026

Deploying blinklabs-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: aa9338e
Status: ✅  Deploy successful!
Preview URL: https://2f7f80d8.blinklabs-docs.pages.dev
Branch Preview URL: https://earncoinpool-patch-1.blinklabs-docs.pages.dev

View logs

Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
@EarnCoinPool EarnCoinPool marked this pull request as ready for review February 24, 2026 19:57
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (5)
src/content/docs/guides/bursa/003-commands.md (1)

55-61: Make heading levels consistent and add fence languages.

One section appears to jump heading levels per lint, and the URL/code fences lack language specifiers. Promote to the next heading level and annotate fences (bash/text) to satisfy MD001/MD040.

✅ Suggested adjustment (apply consistently)
-## Access API Swagger Documentation
+### Access API Swagger Documentation

-```
+```text
 http://localhost:8080/swagger/index.html
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/003-commands.md around lines 55 - 61, Change
the heading "Access API Swagger Documentation" from level "##" to the next level
(e.g., "### Access API Swagger Documentation") to keep heading levels
consistent, and update the code fence containing the URL to include a language
tag (use "text" or "bash") so the fence becomes a fenced code block with a
language specifier for the URL example.


</details>

</blockquote></details>
<details>
<summary>src/content/docs/guides/bursa/005-hash-commands.md (1)</summary><blockquote>

`17-38`: **Align subheading level and specify code-fence language.**

Subsections skip a heading level, and command blocks lack language specifiers. Use `###` for subsections and annotate fences with `bash`.

<details>
<summary>✅ Suggested adjustment (apply consistently)</summary>

```diff
-#### Metadata
+### Metadata

-```
+```bash
 ./bursa hash metadata pool-metadata.json
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/005-hash-commands.md around lines 17 - 38,
Update the markdown so subsections use consistent heading level "###" for the
"Metadata" and "Anchor Data" sections (instead of skipping a level) and add the
language specifier "bash" to the fenced code blocks containing the commands (the
blocks with "./bursa hash metadata pool-metadata.json" and "./bursa hash
anchor-data --file-text constitution.txt") so they render as shell examples.


</details>

</blockquote></details>
<details>
<summary>src/content/docs/guides/bursa/004-cert-commands.md (1)</summary><blockquote>

`66-90`: **Normalize subheading level and add code-fence language.**

Subsections jump from `##` to `####`, and command blocks lack language specifiers. Use `###` and annotate fenced blocks (`bash`) to keep lint clean.

<details>
<summary>✅ Suggested adjustment (apply consistently)</summary>

```diff
-## Create Certificates for Stake Pool Operation
+## Create Certificates for Stake Pool Operation

-```
+```bash
 ./bursa cert opcert --kes-vkey /path/kes.vkey --cold-skey /path/cold.skey --counter 0 --kes-period 200 --out node.cert
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/004-cert-commands.md around lines 66 - 90, The
"Create Certificates for Stake Pool Operation" section uses inconsistent heading
levels (jumps from ## to ####) and the command fence lacks a language specifier;
update the subsection headings to use ### (normalize from #### to ###) so
heading levels are consistent, and add a bash code-fence language annotation to
the operational certificate example fence containing the "./bursa cert opcert
--kes-vkey /path/kes.vkey --cold-skey /path/cold.skey --counter 0 --kes-period
200 --out node.cert" command to satisfy the linter.


</details>

</blockquote></details>
<details>
<summary>src/content/docs/guides/bursa/007-address-commands.md (1)</summary><blockquote>

`20-51`: **Fix heading level jump and add language to fenced blocks.**

There’s a `##` → `####` jump and code fences without a language specifier. Use `###` for subsections and annotate command blocks with `bash`.

<details>
<summary>✅ Suggested adjustment (apply consistently)</summary>

```diff
-#### Address Build
+### Address Build

-```
+```bash
 ./bursa address build --payment-key addr_vk1... --stake-key stake_vk1... --network mainnet
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/007-address-commands.md around lines 20 - 51,
Change the inconsistent heading levels from "#### Address Build" and "####
Address Info" to "###" so subsections follow the "##" section correctly, and
annotate all fenced command blocks with the bash language (e.g., ```bash) where
CLI examples appear (lines containing "./bursa address build ..." and "./bursa
address info ...") so syntax highlighting is consistent and the document
structure is fixed.


</details>

</blockquote></details>
<details>
<summary>src/content/docs/guides/bursa/006-script-commands.md (1)</summary><blockquote>

`18-42`: **Normalize heading level and add code-fence language.**

Subsections jump from `##` to `####`, and fenced blocks have no language. Promote to `###` and annotate code blocks with `bash` (or similar) to satisfy linting.

<details>
<summary>✅ Suggested adjustment (apply consistently)</summary>

```diff
-#### Create Multi-Signature Script
+### Create Multi-Signature Script

-  ```
+  ```bash
   ./bursa script create --required 2 --key-hashes abcdef1234567890abcdef1234567890abcdef12,abcdef1234567890abcdef1234567890abcdef13,abcdef1234567890abcdef1234567890abcdef14
   ```
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/006-script-commands.md around lines 18 - 42,
Change the subsection heading "Create Multi-Signature Script" from a level-4
(####) to level-3 (###) and update every fenced code block that shows the CLI
invocation (lines beginning with "./bursa script create ...") to include a
language tag (e.g., ```bash) so linting passes; apply these two edits
consistently across the listed examples (the 2-of-3, all-signers, any-signer,
and timelocked examples).


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @src/content/docs/guides/bursa/003-commands.md:

  • Around line 55-61: Change the heading "Access API Swagger Documentation" from
    level "##" to the next level (e.g., "### Access API Swagger Documentation") to
    keep heading levels consistent, and update the code fence containing the URL to
    include a language tag (use "text" or "bash") so the fence becomes a fenced code
    block with a language specifier for the URL example.

In @src/content/docs/guides/bursa/004-cert-commands.md:

  • Around line 66-90: The "Create Certificates for Stake Pool Operation" section
    uses inconsistent heading levels (jumps from ## to ####) and the command fence
    lacks a language specifier; update the subsection headings to use ### (normalize
    from #### to ###) so heading levels are consistent, and add a bash code-fence
    language annotation to the operational certificate example fence containing the
    "./bursa cert opcert --kes-vkey /path/kes.vkey --cold-skey /path/cold.skey
    --counter 0 --kes-period 200 --out node.cert" command to satisfy the linter.

In @src/content/docs/guides/bursa/005-hash-commands.md:

  • Around line 17-38: Update the markdown so subsections use consistent heading
    level "###" for the "Metadata" and "Anchor Data" sections (instead of skipping a
    level) and add the language specifier "bash" to the fenced code blocks
    containing the commands (the blocks with "./bursa hash metadata
    pool-metadata.json" and "./bursa hash anchor-data --file-text constitution.txt")
    so they render as shell examples.

In @src/content/docs/guides/bursa/006-script-commands.md:

  • Around line 18-42: Change the subsection heading "Create Multi-Signature
    Script" from a level-4 (####) to level-3 (###) and update every fenced code
    block that shows the CLI invocation (lines beginning with "./bursa script create
    ...") to include a language tag (e.g., ```bash) so linting passes; apply these
    two edits consistently across the listed examples (the 2-of-3, all-signers,
    any-signer, and timelocked examples).

In @src/content/docs/guides/bursa/007-address-commands.md:

  • Around line 20-51: Change the inconsistent heading levels from "#### Address
    Build" and "#### Address Info" to "###" so subsections follow the "##" section
    correctly, and annotate all fenced command blocks with the bash language (e.g.,
and "./bursa address info ...") so syntax highlighting is consistent and the
document structure is fixed.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dcbd485 and a6fb161.

📒 Files selected for processing (7)
  • src/content/docs/guides/bursa/002-quick-start.md
  • src/content/docs/guides/bursa/003-commands.md
  • src/content/docs/guides/bursa/004-cert-commands.md
  • src/content/docs/guides/bursa/005-hash-commands.md
  • src/content/docs/guides/bursa/006-script-commands.md
  • src/content/docs/guides/bursa/007-address-commands.md
  • src/content/docs/guides/bursa/008-key-commands.md

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6 issues found across 7 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/content/docs/guides/bursa/003-commands.md">

<violation number="1" location="src/content/docs/guides/bursa/003-commands.md:8">
P3: Typo: "certificates need" should be "certificates needed".</violation>
</file>

<file name="src/content/docs/guides/bursa/002-quick-start.md">

<violation number="1" location="src/content/docs/guides/bursa/002-quick-start.md:102">
P3: Fix grammatical error: 'need' should be 'needed'.</violation>
</file>

<file name="src/content/docs/guides/bursa/008-key-commands.md">

<violation number="1" location="src/content/docs/guides/bursa/008-key-commands.md:235">
P3: Incorrect header text due to a copy-paste error.</violation>

<violation number="2" location="src/content/docs/guides/bursa/008-key-commands.md:275">
P3: Broken anchor link.</violation>
</file>

<file name="src/content/docs/guides/bursa/006-script-commands.md">

<violation number="1" location="src/content/docs/guides/bursa/006-script-commands.md:11">
P3: Grammar fix: 'script' should be pluralized to 'scripts'</violation>

<violation number="2" location="src/content/docs/guides/bursa/006-script-commands.md:44">
P2: Fix indentation to prevent breaking Markdown parsing and avoid nesting the footer inside the last list item.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/content/docs/guides/bursa/006-script-commands.md Outdated
Comment thread src/content/docs/guides/bursa/003-commands.md Outdated
Comment thread src/content/docs/guides/bursa/002-quick-start.md Outdated
> 4. [hash](../005-hash-commands) &nbsp;&nbsp;&nbsp; - Commands for generating cryptographic hashes used in Cardano
> 5. [script](../006-script-commands) &nbsp;&nbsp; - Commands for multi-signature operations
> 6. [address](../007-address-commands) - Commands for working with Cardano addresses
> 7. [key](#key) &emsp;&nbsp;&nbsp; - Commands for deriving individual keys from a mnemonic
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Broken anchor link.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/content/docs/guides/bursa/008-key-commands.md, line 275:

<comment>Broken anchor link.</comment>

<file context>
@@ -0,0 +1,277 @@
+> 4. [hash](../005-hash-commands)  &nbsp;&nbsp;&nbsp; - Commands for generating cryptographic hashes used in Cardano
+> 5. [script](../006-script-commands) &nbsp;&nbsp; - Commands for multi-signature operations
+> 6. [address](../007-address-commands) - Commands for working with Cardano addresses
+> 7. [key](#key)  &emsp;&nbsp;&nbsp; - Commands for deriving individual keys from a mnemonic
+
+***
</file context>
Fix with Cubic

./bursa key committee-cold --mnemonic "word1 word2 ..." --account-index 0 --index 0
```

**Constitutional Committee Cold Key with Key Files Example**
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Incorrect header text due to a copy-paste error.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/content/docs/guides/bursa/008-key-commands.md, line 235:

<comment>Incorrect header text due to a copy-paste error.</comment>

<file context>
@@ -0,0 +1,277 @@
+./bursa key committee-cold --mnemonic "word1 word2 ..." --account-index 0 --index 0
+```
+
+**Constitutional Committee Cold Key with Key Files Example**
+
+> ⚠️ Please adjust path below.
</file context>
Fix with Cubic

Comment thread src/content/docs/guides/bursa/006-script-commands.md Outdated
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (3)
src/content/docs/guides/bursa/006-script-commands.md (3)

11-11: Tighten grammar in command descriptions.

Line 11 should be plural (“multi-signature scripts”), and Line 16 should use “Generates” for verb agreement.

Proposed text tweak
-Bursa can also be used to generate multi-signature script. The Bursa script command has 3 command types that you can run.
+Bursa can also be used to generate multi-signature scripts. The Bursa script command has 3 command types that you can run.
...
->  - **address:** Generate mainnet address from script
+>  - **address:** Generates a mainnet address from a script

Also applies to: 14-16

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/006-script-commands.md` at line 11, Update the
documentation wording for subject-verb agreement and plurality: change the
sentence "Bursa can also be used to generate multi-signature script." to "Bursa
can also be used to generate multi-signature scripts." and edit the command
description sentence at lines 14–16 so the verb reads "Generates" (e.g., change
any "Generate ..." to "Generates ...") to ensure proper verb agreement in those
command descriptions.

22-24: Add language identifiers to fenced code blocks.

All command examples should use bash-tagged fences for lint compliance and readability.

Proposed markdown update
-```
+```bash
 ./bursa script create --required 2 --key-hashes ...

...
- +bash
./bursa script create --all --key-hashes ...

...
-```
+```bash
./bursa script create --any --key-hashes ...

...
- +bash
./bursa script create --required 2 --key-hashes ... --timelock-after 1000000

Also applies to: 28-30, 34-36, 40-42

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/006-script-commands.md` around lines 22 - 24,
The fenced code blocks in src/content/docs/guides/bursa/006-script-commands.md
are missing language identifiers; update each triple-backtick fence around the
example bursa CLI commands (e.g., the blocks showing "./bursa script create
--required 2 --key-hashes ...", "--all", "--any", and the "--timelock-after"
example) to use bash-tagged fences (```bash) so the examples are lint-compliant
and display as shell commands.

14-16: Remove extra spaces after blockquote marker.

Use a single space after > on Lines 14–16 to satisfy MD027.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/006-script-commands.md` around lines 14 - 16,
The blockquote lines that render the script command list ("- **create:** Creates
a new multi-signature script", "- **validate:** Validates a script against
signatures and slot", "- **address:** Generate mainnet address from script")
have two spaces after the '>' marker; remove the extra space so each line uses a
single space after '>' (i.e., change ">  - **create:** ..." to "> - **create:**
..." and similarly for the validate and address lines) to satisfy MD027.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/content/docs/guides/bursa/006-script-commands.md`:
- Line 18: The heading "Create Multi-Signature Script" is using four hashes
(####) directly after an H2 which breaks the heading hierarchy; change that line
to use three hashes (### Create Multi-Signature Script) so the heading level
follows the preceding `##` and maintains a valid H2→H3 structure.
- Around line 13-42: The doc currently lists three script commands (create,
validate, address) but only documents create; add two new sections titled
"Validate Script" and "Derive Address from Script" and include one concrete CLI
example for each using the actual command names (e.g., "bursa script validate
--script-file multisig.script --signatures sig1,sig2 --slot 12345678" and "bursa
script address --script-file multisig.script"); ensure the examples match the
existing style/formatting and briefly describe what each command does and
required flags (script-file, signatures/slot for validate; script-file for
address).

---

Nitpick comments:
In `@src/content/docs/guides/bursa/006-script-commands.md`:
- Line 11: Update the documentation wording for subject-verb agreement and
plurality: change the sentence "Bursa can also be used to generate
multi-signature script." to "Bursa can also be used to generate multi-signature
scripts." and edit the command description sentence at lines 14–16 so the verb
reads "Generates" (e.g., change any "Generate ..." to "Generates ...") to ensure
proper verb agreement in those command descriptions.
- Around line 22-24: The fenced code blocks in
src/content/docs/guides/bursa/006-script-commands.md are missing language
identifiers; update each triple-backtick fence around the example bursa CLI
commands (e.g., the blocks showing "./bursa script create --required 2
--key-hashes ...", "--all", "--any", and the "--timelock-after" example) to use
bash-tagged fences (```bash) so the examples are lint-compliant and display as
shell commands.
- Around line 14-16: The blockquote lines that render the script command list
("- **create:** Creates a new multi-signature script", "- **validate:**
Validates a script against signatures and slot", "- **address:** Generate
mainnet address from script") have two spaces after the '>' marker; remove the
extra space so each line uses a single space after '>' (i.e., change ">  -
**create:** ..." to "> - **create:** ..." and similarly for the validate and
address lines) to satisfy MD027.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6fb161 and 5fbbb7b.

📒 Files selected for processing (1)
  • src/content/docs/guides/bursa/006-script-commands.md

Comment on lines +13 to +42
> **Script command types:**
> - **create:** Creates a new multi-signature script
> - **validate:** Validates a script against signatures and slot
> - **address:** Generate mainnet address from script

#### Create Multi-Signature Script

- Create a 2-of-3 multi-sig script

```
./bursa script create --required 2 --key-hashes abcdef1234567890abcdef1234567890abcdef12,abcdef1234567890abcdef1234567890abcdef13,abcdef1234567890abcdef1234567890abcdef14
```

- Create an all-signers-required script

```
./bursa script create --all --key-hashes abcdef1234567890abcdef1234567890abcdef12,abcdef1234567890abcdef1234567890abcdef13
```

- Create an any-signer script

```
./bursa script create --any --key-hashes abcdef1234567890abcdef1234567890abcdef12,abcdef1234567890abcdef1234567890abcdef13,abcdef1234567890abcdef1234567890abcdef14
```

- Create a timelocked script (valid after slot 1000000)

```
./bursa script create --required 2 --key-hashes abcdef1234567890abcdef1234567890abcdef12,abcdef1234567890abcdef1234567890abcdef13 --timelock-after 1000000
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Documented command types are incomplete in this page.

Lines 13–16 state three script commands (create, validate, address), but Lines 18–42 only document create. Please add dedicated validate and address sections with at least one concrete CLI example each, or narrow the claim to only create.

Suggested structure
 ## Commands for Multi-Signature Operations
 Bursa can also be used to generate multi-signature scripts. The Bursa script command has 3 command types that you can run.

 > **Script command types:**
 > - **create:** Creates a new multi-signature script
 > - **validate:** Validates a script against signatures and slot
 > - **address:** Generates a mainnet address from a script

 #### Create Multi-Signature Script
 ...
+#### Validate Multi-Signature Script
+
+```bash
+./bursa script validate --script-file multisig.script --signatures sig1,sig2 --slot 12345678
+```
+
+#### Derive Address from Script
+
+```bash
+./bursa script address --script-file multisig.script
+```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 14-14: Multiple spaces after blockquote symbol

(MD027, no-multiple-space-blockquote)


[warning] 15-15: Multiple spaces after blockquote symbol

(MD027, no-multiple-space-blockquote)


[warning] 16-16: Multiple spaces after blockquote symbol

(MD027, no-multiple-space-blockquote)


[warning] 18-18: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


[warning] 22-22: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 28-28: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 34-34: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 40-40: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/006-script-commands.md` around lines 13 - 42,
The doc currently lists three script commands (create, validate, address) but
only documents create; add two new sections titled "Validate Script" and "Derive
Address from Script" and include one concrete CLI example for each using the
actual command names (e.g., "bursa script validate --script-file multisig.script
--signatures sig1,sig2 --slot 12345678" and "bursa script address --script-file
multisig.script"); ensure the examples match the existing style/formatting and
briefly describe what each command does and required flags (script-file,
signatures/slot for validate; script-file for address).

> - **validate:** Validates a script against signatures and slot
> - **address:** Generate mainnet address from script

#### Create Multi-Signature Script
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix heading level jump (H2 → H4).

Line 18 uses #### immediately after an ## heading. Use ### here to keep heading hierarchy valid.

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 18-18: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/006-script-commands.md` at line 18, The heading
"Create Multi-Signature Script" is using four hashes (####) directly after an H2
which breaks the heading hierarchy; change that line to use three hashes (###
Create Multi-Signature Script) so the heading level follows the preceding `##`
and maintains a valid H2→H3 structure.

Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
src/content/docs/guides/bursa/003-commands.md (1)

12-19: Consider de-duplicating the command category block.

The same category list appears twice; keeping one source (or include/partial) will reduce drift risk when command sets change.

Also applies to: 69-76

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/003-commands.md` around lines 12 - 19, The
"Bursa Command Categories" list is duplicated in this document (first occurrence
under the "Bursa Command Categories" header and again later around the block
referenced as lines 69-76); remove the redundant copy and replace both
occurrences with a single included partial or shared snippet so the list lives
in one source of truth (e.g., create a markdown include/partial and reference it
where the list is needed), updating the document to reference that include
instead of duplicating the bullet list.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/content/docs/guides/bursa/002-quick-start.md`:
- Line 104: Update the markdown link target in 002-quick-start.md: replace the
relative path string "../003-commands" used in the link text "[Learn more about
how to use Bursa with the command line and useful commands that you can
run.](../003-commands)" with "./003-commands" so it points to the
003-commands.md file in the same directory as 002-quick-start.md.

In `@src/content/docs/guides/bursa/003-commands.md`:
- Around line 31-33: Update the three fenced code blocks that currently lack
language identifiers by adding appropriate languages: change the block
containing "./bursa wallet create --output dev" to start with "```bash", change
the block with "./bursa api" to "```bash", and change the block with
"http://localhost:8080/swagger/index.html" to "```text" so tooling/linting
recognizes the languages and MD040 is resolved.
- Around line 15-19: The relative links in the document's index currently point
to parent paths (e.g., "../004-cert-commands", "../005-hash-commands",
"../006-script-commands", "../007-address-commands", "../008-key-commands")
which breaks navigation; update each link to use a sibling-relative path by
replacing the "../" prefix with "./" for the corresponding targets
(004-cert-commands, 005-hash-commands, 006-script-commands,
007-address-commands, 008-key-commands) so they correctly resolve to files in
the same bursa folder.

---

Nitpick comments:
In `@src/content/docs/guides/bursa/003-commands.md`:
- Around line 12-19: The "Bursa Command Categories" list is duplicated in this
document (first occurrence under the "Bursa Command Categories" header and again
later around the block referenced as lines 69-76); remove the redundant copy and
replace both occurrences with a single included partial or shared snippet so the
list lives in one source of truth (e.g., create a markdown include/partial and
reference it where the list is needed), updating the document to reference that
include instead of duplicating the bullet list.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5fbbb7b and f436e84.

📒 Files selected for processing (2)
  • src/content/docs/guides/bursa/002-quick-start.md
  • src/content/docs/guides/bursa/003-commands.md

```

![bursa-swagger](/bursa-swagger.png)
[Learn more about how to use Bursa with the command line and useful commands that you can run.](../003-commands)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the directory structure of the bursa guides
find src/content/docs/guides/bursa -type f -name "*.md" | sort

Repository: blinklabs-io/docs

Length of output: 457


🏁 Script executed:

#!/bin/bash
# Find all files named 003-commands in the repository
fd "003-commands" src/

Repository: blinklabs-io/docs

Length of output: 106


🏁 Script executed:

#!/bin/bash
# Check the parent directories structure
tree -L 3 src/content/docs/guides/ 2>/dev/null || find src/content/docs/guides -type f -name "*.md" | head -20

Repository: blinklabs-io/docs

Length of output: 1820


Fix broken link: change ../003-commands to ./003-commands.

The link ../003-commands resolves to a non-existent path outside the bursa folder. The target file 003-commands.md is in the same directory as 002-quick-start.md. Use ./003-commands instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/002-quick-start.md` at line 104, Update the
markdown link target in 002-quick-start.md: replace the relative path string
"../003-commands" used in the link text "[Learn more about how to use Bursa with
the command line and useful commands that you can run.](../003-commands)" with
"./003-commands" so it points to the 003-commands.md file in the same directory
as 002-quick-start.md.

Comment on lines +15 to +19
> 3. [cert](../004-cert-commands) &emsp;&nbsp; - Commands for generating various Cardano certificates
> 4. [hash](../005-hash-commands) &nbsp;&nbsp;&nbsp; - Commands for generating cryptographic hashes used in Cardano
> 5. [script](../006-script-commands) &nbsp;&nbsp; - Commands for multi-signature operations
> 6. [address](../007-address-commands) - Commands for working with Cardano addresses
> 7. [key](../008-key-commands) &emsp;&nbsp;&nbsp; - Commands for deriving individual keys from a mnemonic
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# First, check if the file exists and explore the directory structure
ls -la src/content/docs/guides/bursa/ 2>/dev/null | head -20
echo "---"
# Check what files actually exist in the bursa directory
find src/content/docs/guides/bursa -type f -name "*.md" | sort

Repository: blinklabs-io/docs

Length of output: 1142


🏁 Script executed:

#!/bin/bash
# Check the actual content at lines 15-19 and 72-76
echo "=== Lines 15-19 ==="
sed -n '15,19p' src/content/docs/guides/bursa/003-commands.md
echo ""
echo "=== Lines 72-76 ==="
sed -n '72,76p' src/content/docs/guides/bursa/003-commands.md
echo ""
echo "=== Link verification ==="
# Run the verification script from the review comment
python3 - <<'PY'
from pathlib import Path
base = Path("src/content/docs/guides/bursa/003-commands.md").parent
targets = [
    "../004-cert-commands",
    "../005-hash-commands",
    "../006-script-commands",
    "../007-address-commands",
    "../008-key-commands",
]
print(f"Base directory: {base}")
print(f"Base exists: {base.exists()}")
print()
for t in targets:
    md = (base / (t + ".md")).resolve()
    exists = md.exists()
    status = "OK" if exists else "MISSING"
    print(f"{t:28} -> {status:8} :: {md}")
PY

Repository: blinklabs-io/docs

Length of output: 1753


Fix broken relative links—use ./ instead of ../ to target sibling files in the same directory.

The links in lines 15–19 (and 72–76) use ../004-cert-commands, ../005-hash-commands, etc., but this navigates to the parent guides folder where these files do not exist. Since the target files (004-cert-commands.md, 005-hash-commands.md, etc.) are siblings in the same bursa directory, change the links to use ./ prefix instead: ./004-cert-commands, ./005-hash-commands, and so on.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/content/docs/guides/bursa/003-commands.md` around lines 15 - 19, The
relative links in the document's index currently point to parent paths (e.g.,
"../004-cert-commands", "../005-hash-commands", "../006-script-commands",
"../007-address-commands", "../008-key-commands") which breaks navigation;
update each link to use a sibling-relative path by replacing the "../" prefix
with "./" for the corresponding targets (004-cert-commands, 005-hash-commands,
006-script-commands, 007-address-commands, 008-key-commands) so they correctly
resolve to files in the same bursa folder.

Comment on lines +31 to +33
```
./bursa wallet create --output dev
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced code blocks.

Line 31, Line 49, and Line 59 open fenced blocks without a language, which triggers MD040 and weakens rendering/tooling consistency.

Suggested patch
-```
+```bash
 ./bursa wallet create --output dev

- +bash
./bursa api


-```
+```text
http://localhost:8080/swagger/index.html
</details>


Also applies to: 49-51, 59-61

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.21.0)</summary>

[warning] 31-31: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/content/docs/guides/bursa/003-commands.md around lines 31 - 33, Update
the three fenced code blocks that currently lack language identifiers by adding
appropriate languages: change the block containing "./bursa wallet create
--output dev" to start with "bash", change the block with "./bursa api" to "bash", and change the block with "http://localhost:8080/swagger/index.html"
to "```text" so tooling/linting recognizes the languages and MD040 is resolved.


</details>

<!-- fingerprinting:phantom:triton:hawk -->

<!-- This is an auto-generated comment by CodeRabbit -->

Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
Signed-off-by: EarnCoinPool <83303972+EarnCoinPool@users.noreply.github.com>
@musik-c musik-c merged commit d637b48 into main Feb 26, 2026
5 checks passed
@musik-c musik-c deleted the EarnCoinPool-patch-1 branch February 26, 2026 22: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.

2 participants