Skip to content

Add Solana support to sandbox #19

@0xMillz

Description

@0xMillz

Overview

Add Solana support to the sandbox developer tools and chain list. The KeepKey HD wallet already supports Solana (solanaGetAddress, solanaSignTx) in packages/hdwallet-keepkey, but the sandbox UI does not expose it. Users cannot currently test Solana address derivation or transaction signing via the sandbox.

References and additional details

Wallet support (already implemented):

  • packages/hdwallet-core/src/solana.ts — Solana interfaces (SolanaGetAddress, SolanaSignTx, etc.)
  • packages/hdwallet-keepkey/src/solana.tssolanaGetAddress(), solanaSignTx(), derivation path m/44'/501'/account'/0'

Sandbox files to update:

  1. examples/sandbox/chains.ts — Add Solana to CHAIN_CONFIGS (CAIP-2: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501, architecture: Other or new Solana type)
  2. examples/sandbox/developerTools.ts — Add SOLANA_TOOLS with Get Address and Sign Transaction tools (pattern: wallet.solanaGetAddress(), wallet.solanaSignTx())
  3. examples/sandbox/index.ts — Import SOLANA_TOOLS, call initializeToolPanels('solana-tools-container', SOLANA_TOOLS)
  4. examples/sandbox/index.html — Add Solana tab/panel in the developer tools UI

Solana API usage:

  • Get Address: wallet.solanaGetAddress({ addressNList, showDisplay? }) => Promise<string>
  • Sign Tx: wallet.solanaSignTx({ addressNList, rawTx: Uint8Array | hex | base64 }) => Promise<{ signature }>

Acceptance Criteria

  • Solana appears in the sandbox chain list / developer tools
  • Get Address tool works for Solana (derivation path m/44'/501'/0'/0' or similar)
  • Sign Transaction tool supports Solana (raw transaction hex or base64 input)
  • Show on Device option for Get Address (consistent with other chains)
  • Sandbox build and dev server run without errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions