# @canvas-js/signer-solana

> The Solana session signer takes an injected `SolanaWindowSigner`, provided by Solana wallets like Phantom, and uses it to authenticate a new session.

Latest version **0.16.1** (published 2025-07-30) · 0 weekly downloads

## Install

```sh
npm install @canvas-js/signer-solana
pnpm add @canvas-js/signer-solana
yarn add @canvas-js/signer-solana
bun add @canvas-js/signer-solana
```

## Health

**Score 35/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.16.1 |
| Published | 2025-07-30 |
| First published | 2025-04-18 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 8 |
| Unpacked size | 9.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Canvas Technologies, Inc. |
| Maintainers | joelg, raykyri, rjwebb |

## Links

- npm: https://www.npmjs.com/package/@canvas-js/signer-solana
- npm.io page: https://npm.io/package/@canvas-js/signer-solana

## Dependencies (8)

- [multiformats](https://npm.io/package/multiformats.md) ^13.3.7
- [@noble/curves](https://npm.io/package/@noble/curves.md) ^1.9.2
- [@ipld/dag-json](https://npm.io/package/@ipld/dag-json.md) ^10.2.5
- [@libp2p/logger](https://npm.io/package/@libp2p/logger.md) ^5.1.13
- [@solana/web3.js](https://npm.io/package/@solana/web3.js.md) ^1.93.0
- [@canvas-js/utils](https://npm.io/package/@canvas-js/utils.md) 1.0.0
- [@canvas-js/interfaces](https://npm.io/package/@canvas-js/interfaces.md) 0.16.1
- [@canvas-js/signatures](https://npm.io/package/@canvas-js/signatures.md) 0.16.1

## Recent versions

- 0.16.1 (latest) — 2025-07-30
- 0.16.0-next.9 (next) — 2025-07-13
- 0.16.0 — 2025-07-08
- 0.16.0-next.8 — 2025-06-26
- 0.16.0-next.7 — 2025-06-25
- 0.16.0-next.6 — 2025-06-25
- 0.16.0-next.5 — 2025-06-18
- 0.16.0-next.4 — 2025-06-18
- 0.16.0-next.3 — 2025-06-13
- 0.16.0-next.2 — 2025-06-13
- 0.16.0-next.1 — 2025-06-13
- 0.16.0-next.0 — 2025-06-13
- 0.15.2-next.0 — 2025-06-11
- 0.15.1 — 2025-06-05
- 0.15.0 — 2025-05-22
- … 16 more at https://npm.io/package/@canvas-js/signer-solana/versions

## README

# @canvas-js/signer-solana

The Solana session signer takes an injected `SolanaWindowSigner`, provided by Solana wallets like Phantom,
and uses it to authenticate a new session.

It also handles verification of messages matching this authentication method.

## Table of Contents

- [Installation](#installation)
- [API](#api)

## Installation

```
npm i @canvas-js/signer-solana
```

## API

```ts
import solw3 from "@solana/web3.js"
import type { Signature, SessionSigner, Action, Message, Session } from "@canvas-js/interfaces"
import { SolanaSessionData } from "./types.js"
interface SolanaWindowSigner {
  publicKey?: solw3.PublicKey
  signMessage(message: Uint8Array): Promise<{
    signature: Uint8Array
  }>
}
export interface SolanaSignerInit {
  chainId?: string
  signer?: SolanaWindowSigner
  sessionDuration?: number
}
export declare class SolanaSigner implements SessionSigner {
  constructor({ signer, sessionDuration, chainId }?: SolanaSignerInit)
  readonly match: (chain: string) => boolean
  verifySession(topic: string, session: Session): void
  getSession(
    topic: string,
    options?: {
      timestamp?: number
      fromCache?: boolean
    },
  ): Promise<Session<SolanaSessionData>>
  sign(message: Message<Action | Session>): Signature
  clear(topic: string): Promise<void>
}
```

---
_Source: https://npm.io/package/@canvas-js/signer-solana · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
