Skip to content

docs: update keychain TypeScript signers#1576

Merged
amilz merged 3 commits into
mainfrom
docs/update-keychain
Jun 19, 2026
Merged

docs: update keychain TypeScript signers#1576
amilz merged 3 commits into
mainfrom
docs/update-keychain

Conversation

@amilz

@amilz amilz commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Problem

The keychain TypeScript docs used the deprecated class-based signer constructors and lacked a first-class example for the Kit client plugin.

Changes

  • Migrate backend examples to the create*Signer factory functions (createVaultSigner, createAwsKmsSigner, createPrivySigner, createTurnkeySigner, createFireblocksSigner). createFireblocksSigner is async and inits internally, so the manual .init() call is removed.
  • Add a "Using with a Kit Client (keychainSigner plugin)" section covering keychainSigner/keychainPayer/keychainIdentity from @solana/keychain-kit-plugin, plus the @solana/kit-plugin-signer path for an existing signer.
  • Add @solana/keychain-utila and @solana/keychain-kit-plugin to the install list.

Scope is /en/ only; other locales regenerate on merge.

Closes TOO-540

@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
solana-com-docs Ready Ready Preview, Comment Jun 18, 2026 4:16pm
5 Skipped Deployments
Project Deployment Actions Updated (UTC)
solana-com Skipped Skipped Jun 18, 2026 4:16pm
solana-com-accelerate Skipped Skipped Jun 18, 2026 4:16pm
solana-com-breakpoint-2 Skipped Skipped Jun 18, 2026 4:16pm
solana-com-media Skipped Skipped Jun 18, 2026 4:16pm
templates Skipped Skipped Jun 18, 2026 4:16pm

Request Review

# Conflicts:
#	apps/docs/content/docs/en/tools/keychain/getting-started/typescript.mdx
@greptile-apps

greptile-apps Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR updates the Keychain TypeScript docs by migrating all backend examples from deprecated class-based constructors (new VaultSigner(), etc.) to the recommended create*Signer factory functions, and adds a new section documenting the @solana/keychain-kit-plugin integration (keychainSigner / keychainPayer / keychainIdentity).

  • All five backend examples (vault, aws-kms, privy, turnkey, fireblocks) are updated to factory functions; createFireblocksSigner is correctly shown as async, removing the now-unnecessary .init() call.
  • A new "Using with a Kit Client" section demonstrates keychainSigner, keychainPayer, keychainIdentity, and the @solana/kit-plugin-signer path; the installation block gains pnpm add @solana/keychain-kit-plugin.
  • The third code snippet in the new section omits import { createClient } from "@solana/kit", which would cause a runtime/compile error for anyone copying the block directly.

Confidence Score: 4/5

Safe to merge after fixing one copy-paste error in a code snippet.

The third code block in the new Kit client section calls createClient() without importing it, which would produce an immediate compile or runtime error for any developer copying that snippet. Everything else — factory function migrations, Fireblocks async init removal, install instructions — looks correct and consistent with the rest of the file.

apps/docs/content/docs/en/tools/keychain/getting-started/typescript.mdx — specifically the 'Already have a SolanaSigner?' code block around line 152.

Important Files Changed

Filename Overview
apps/docs/content/docs/en/tools/keychain/getting-started/typescript.mdx Migrates class-based signer constructors to factory functions and adds a new Kit client plugin section; the "Already have a SolanaSigner?" code example is missing a createClient import, causing a copy-paste error.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Developer wants a signer] --> B{Kit client needed?}
    B -- No --> C[createKeychainSigner / create*Signer]
    B -- Yes --> D{New signer or existing?}
    D -- New --> E["keychainSigner / keychainPayer / keychainIdentity\n(@solana/keychain-kit-plugin)"]
    D -- Existing --> F["signer(mySigner)\n(@solana/kit-plugin-signer)"]
    C --> G[SolanaSigner]
    E --> H["createClient().use(plugin)"]
    F --> H
    G --> I[signTransactionMessageWithSigners]
    H --> J[client.payer / client.identity]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Developer wants a signer] --> B{Kit client needed?}
    B -- No --> C[createKeychainSigner / create*Signer]
    B -- Yes --> D{New signer or existing?}
    D -- New --> E["keychainSigner / keychainPayer / keychainIdentity\n(@solana/keychain-kit-plugin)"]
    D -- Existing --> F["signer(mySigner)\n(@solana/kit-plugin-signer)"]
    C --> G[SolanaSigner]
    E --> H["createClient().use(plugin)"]
    F --> H
    G --> I[signTransactionMessageWithSigners]
    H --> J[client.payer / client.identity]
Loading

Reviews (2): Last reviewed commit: "docs: add @solana/kit-plugin-signer inst..." | Re-trigger Greptile

@vercel vercel Bot temporarily deployed to Preview – solana-com-accelerate June 18, 2026 16:12 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-media June 18, 2026 16:12 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com June 18, 2026 16:12 Inactive
@vercel vercel Bot temporarily deployed to Preview – templates June 18, 2026 16:12 Inactive
@vercel vercel Bot temporarily deployed to Preview – solana-com-breakpoint-2 June 18, 2026 16:12 Inactive
@amilz amilz merged commit ea4a850 into main Jun 19, 2026
22 of 23 checks passed
@amilz amilz deleted the docs/update-keychain branch June 19, 2026 13:29
@linear

linear Bot commented Jun 19, 2026

Copy link
Copy Markdown

TOO-540

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