Skip to content

docs: scope base-mcp plugin chains; pin smart-account signature pass-through - #10

Merged
daedboi merged 4 commits into
mainfrom
docs/base-mcp-chain-scope-1271-sigs
Jul 31, 2026
Merged

docs: scope base-mcp plugin chains; pin smart-account signature pass-through#10
daedboi merged 4 commits into
mainfrom
docs/base-mcp-chain-scope-1271-sigs

Conversation

@daedboi

@daedboi daedboi commented Jul 31, 2026

Copy link
Copy Markdown
Member

What

Two follow-ups from updating base/skills PR #116 for the BWLK redeployment, plus the version bump they require.

1. Base MCP chain scoping in the plugin doc (skills/boardwalk/plugins/boardwalk.md)
Base MCP's send_calls supports arbitrum, avalanche, base, base-sepolia, bsc, ethereum, optimism, polygon — not Robinhood Chain (4663) — and the base/skills spec limits a plugin's chains to that set. The plugin frontmatter now declares chains: [ethereum, base, arbitrum], with Robinhood marked out of Base MCP scope in ## Notes (launch-link/UI fallback), matching the treatment the previous revision gave Fraxtal/Katana/Ink. The CLI itself still supports all four chains — nothing changes outside the plugin doc.

2. Smart-account (ERC-1271) signature pass-through, pinned
Base MCP's default wallet is a smart account whose sign returns variable-length ERC-1271 signatures (>200 bytes), not 65-byte ECDSA. Verified end-to-end: the CLI's --signature validation is length-agnostic, postSignedMetadata forwards the signature unmodified, and the backend (morphex-backend verifyMetadataSignature) verifies EOA via verifyTypedData then falls back to EIP-1271 isValidSignature against the issuer contract. New test/metadata.test.ts asserts a 300-byte signature reaches the API byte-identical; the contract is stated in postSignedMetadata's doc comment and the SKILL.md flag table.

Two residual items live in the backend, not here: the EIP-1271 path needs an RPC provider configured per chain, and ERC-6492 (undeployed signers) is unhandled — unreachable in this flow, since the metadata signer is the launch issuer, whose account was deployed when create-launch mined.

3. Version bump to 1.0.1
An earlier revision of this PR skipped the bump on the grounds that no runtime behavior changed. That was wrong, per review: skills/ ships inside the npm package (package.json files), and npm versions are immutable — so without a bump the corrected chain scoping and signature guidance could never reach anyone installing 1.0.0. Patch rather than minor: docs only, no new chain or action. All eight references bumped in lockstep per AGENTS.md (package.json, src/cli.ts .version(), the SKILL.md version line, the plugin doc version frontmatter, and the pinned npx examples in README/SKILL.md/plugin doc).

Follow-up after merge

npm publish 1.0.1, then re-pin base/skills PR #116 to @useboardwalk/sdk@1.0.1. That PR intentionally stays at 1.0.0 until then — pinning a documented npx command to an unpublished version would fail to resolve. Apart from those pins the two copies of the plugin doc are identical.

Verification

npm run typecheck clean, npm test 83/83, npm run build clean, node dist/cli.js --version1.0.1. Smoke not run — no runtime code touched.

Summary by CodeRabbit

  • Bug Fixes

    • Support variable-length hexadecimal signatures, including signatures longer than 65 bytes.
    • Preserve smart-account signatures exactly when submitting signed metadata.
    • Clarify verification and retry behavior for metadata submissions.
  • Documentation

    • Updated chain support information, including Robinhood Chain availability and launch guidance.
    • Clarified supported account verification methods and signature handling.
    • Updated CLI and SDK references to version 1.0.1.
  • Chores

    • Released version 1.0.1.

daedboi added 2 commits July 31, 2026 12:14
Base MCP can't route send_calls to Robinhood Chain (4663), and the
base/skills spec limits a plugin's chains to Base MCP's supported set.
Drop robinhood from the frontmatter, mark it out of scope in ## Notes
(launch-link/UI fallback), and note the exclusion in the Overview and
the Submission chain mapping. Mirrors the copy pushed to base/skills
PR #116.
The backend verifies metadata signatures as EOA via verifyTypedData,
then falls back to EIP-1271 isValidSignature for smart accounts, whose
signatures are variable-length (>200 bytes for Base Accounts) rather
than 65-byte ECDSA. The SDK must forward them unmodified: assert a
300-byte signature reaches the API byte-identical, state the contract
in postSignedMetadata's doc comment, and note it in the SKILL.md flag
validation table.
@cursor

cursor Bot commented Jul 31, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation and a regression test only; no changes to submission or chain routing behavior in code.

Overview
Aligns the Base MCP plugin docs with networks send_calls actually supports: frontmatter chains is now ethereum, base, and arbitrum (Robinhood 4663 removed), with overview, submission mapping, and Notes explaining Robinhood stays on the CLI/UI via launch-link only.

Launch metadata signing is documented for smart accounts: SKILL.md states --signature is any-length 0x hex and must be passed whole for ERC-1271; postSignedMetadata’s comment matches that contract. A new test/metadata.test.ts asserts a ~300-byte signature is POSTed byte-identical (no runtime logic change).

Reviewed by Cursor Bugbot for commit aac7694. Configure here.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8d03ef8a-9c73-4755-a1d5-310ce4dd18f0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR documents variable-length metadata signatures, adds forwarding coverage for a 300-byte smart-account signature, removes Robinhood from Base MCP routing documentation, and updates SDK and CLI references from version 1.0.0 to 1.0.1.

Changes

SDK release, metadata, and chain routing

Layer / File(s) Summary
Variable-length metadata signatures
skills/boardwalk/SKILL.md, src/metadata/post.ts
Signature validation accepts any-length 0x-prefixed hexadecimal values. postSignedMetadata documents EOA and EIP-1271 verification, unchanged signature forwarding, and indexing retries.
Metadata signature forwarding test
test/metadata.test.ts
The test verifies successful metadata posting and byte-identical forwarding of a 300-byte smart-account signature with typed metadata fields.
Chain routing and version references
skills/boardwalk/plugins/boardwalk.md, package.json, src/cli.ts, README.md, skills/boardwalk/SKILL.md
The plugin documentation excludes Robinhood from Base MCP routing and directs Robinhood launches to the Boardwalk UI. SDK and CLI references now use version 1.0.1.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the two main changes: Base MCP chain scoping and smart-account signature pass-through.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/base-mcp-chain-scope-1271-sigs

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aac76941b6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread skills/boardwalk/plugins/boardwalk.md
The plugin doc and SKILL.md ship inside the npm package (package.json
`files` includes skills/), and npm versions are immutable — without a
bump the corrected chain scoping and signature guidance can never reach
consumers of 1.0.0. Patch bump: docs only, no new chain or action.

Bumps package.json, the CLI --version, the SKILL.md version line, the
plugin doc version frontmatter, and the pinned npx examples in README,
SKILL.md, and the plugin doc.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2bef78ba56

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package.json
Regenerated with npm install --package-lock-only; the diff is limited to
the two root version fields. Left unsynced, a plain npm install would
rewrite the tracked lockfile and release tooling reading lockfile
metadata would report the previous version.
@daedboi
daedboi merged commit 487202b into main Jul 31, 2026
1 check passed
@daedboi
daedboi deleted the docs/base-mcp-chain-scope-1271-sigs branch July 31, 2026 09:43
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