Package detail

@ledgerhq/hw-app-solana

LedgerHQ98.8kApache-2.07.5.0

Ledger Hardware Wallet Solana Application API

Ledger, LedgerWallet, Solana, sol

readme

GitHub, Ledger Devs Discord, Developer Portal

@ledgerhq/hw-app-solana

Ledger Hardware Wallet Solana JavaScript bindings.


Are you adding Ledger support to your software wallet?

You may be using this package to communicate with the Solana Nano App.

For a smooth and quick integration:

  • See the developers’ documentation on the Developer Portal and
  • Go on Discord to chat with developer support and the developer community.

Notes

To run speculos-smoke test make sure Speculos running (apdu port 9999 and api rest endpoint http://0.0.0.0:5000) with Solana app installed on it. Then run the command from root workspace:

$ yarn run ts-node packages/hw-app-solana/tests/speculos-smoke.ts

Troubleshooting

If ledger returns error 6808 - enable blind signature in settings (not needed for unit testing).

API

Table of Contents

Solana

Solana API

Parameters

  • transport Transport a transport for sending commands to a device
  • scrambleKey string a scramble key (optional, default "solana_default_scramble_key")

Examples

import Solana from "@ledgerhq/hw-app-solana";
const solana = new Solana(transport);

getAddress

Get Solana address (public key) for a BIP32 path.

Because Solana uses Ed25519 keypairs, as per SLIP-0010 all derivation-path indexes will be promoted to hardened indexes.

Parameters
  • path string a BIP32 path
  • display boolean flag to show display (optional, default false)
Examples
solana.getAddress("44'/501'/0'").then(r => r.address)

Returns Promise<{address: Buffer}> an object with the address field

provideTrustedDynamicDescriptor

Provides trusted dynamic and signed coin metadata

Parameters
  • data DescriptorInput An object containing the descriptor and its signature from the CAL

Returns Promise[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)

signTransaction

Sign a Solana transaction.

Parameters
  • path string a BIP32 path
  • txBuffer Buffer serialized transaction
Examples
solana.signTransaction("44'/501'/0'", txBuffer).then(r => r.signature)

Returns Promise<{signature: Buffer}> an object with the signature field

signOffchainMessage

Sign a Solana off-chain message.

Parameters
  • path string a BIP32 path
  • msgBuffer Buffer serialized off-chain message
Examples
solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)

Returns Promise<{signature: Buffer}> an object with the signature field

getAppConfiguration

Get application configuration.

Examples
solana.getAppConfiguration().then(r => r.version)

Returns Promise\<AppConfig> application config object

getChallenge

Method returning a 4 bytes TLV challenge as an hex string

Returns Promise[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

provideTrustedName

Provides a trusted name to be displayed during transactions in place of the token address it is associated to. It shall be run just before a transaction involving the associated address that would be displayed on the device.

Parameters
  • data string a stringified buffer of some TLV encoded data to represent the trusted name

Returns Promise[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) a boolean

changelog

@ledgerhq/hw-app-solana

7.5.0

Minor Changes

Patch Changes

  • Updated dependencies [b5e3217]:
    • @ledgerhq/errors@6.22.0
    • @ledgerhq/hw-transport@6.31.7

7.5.0-next.0

Minor Changes

Patch Changes

  • Updated dependencies [b5e3217]:
    • @ledgerhq/errors@6.22.0-next.0
    • @ledgerhq/hw-transport@6.31.7-next.0

7.4.2

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.6

7.4.2-next.1

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.6-next.1

7.4.2-next.0

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.6-next.0

7.4.1

Patch Changes

  • Updated dependencies [107f35a, 9081c26]:
    • @ledgerhq/errors@6.21.0
    • @ledgerhq/hw-transport@6.31.5

7.4.1-next.0

Patch Changes

  • Updated dependencies [107f35a, 9081c26]:
    • @ledgerhq/errors@6.21.0-next.0
    • @ledgerhq/hw-transport@6.31.5-next.0

7.4.0

Minor Changes

7.4.0-next.0

Minor Changes

7.3.0

Minor Changes

7.3.0-next.0

Minor Changes

7.2.4

Patch Changes

7.2.4-next.1

Patch Changes

7.2.4-next.0

Patch Changes

  • Updated dependencies [0a71c43]:
    • @ledgerhq/errors@6.19.1-next.0
    • @ledgerhq/hw-transport@6.31.4-next.0

7.2.3

Patch Changes

7.2.3-next.0

Patch Changes

7.2.2

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.2

7.2.2-hotfix.0

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.2-hotfix.0

7.2.1

Patch Changes

  • Updated dependencies [e78f3b7, f979216, c1d2bb0]:
    • @ledgerhq/errors@6.18.0
    • @ledgerhq/hw-transport@6.31.1

7.2.1-next.0

Patch Changes

  • Updated dependencies [e78f3b7, f979216, c1d2bb0]:
    • @ledgerhq/errors@6.18.0-next.0
    • @ledgerhq/hw-transport@6.31.1-next.0

7.2.0

Minor Changes

Patch Changes

  • Updated dependencies [77fa530, 815ae3d, cec1599]:
    • @ledgerhq/hw-transport@6.31.0
    • @ledgerhq/errors@6.17.0

7.2.0-next.0

Minor Changes

Patch Changes

  • Updated dependencies [77fa530, 815ae3d, cec1599]:
    • @ledgerhq/hw-transport@6.31.0-next.0
    • @ledgerhq/errors@6.17.0-next.0

7.1.6

Patch Changes

  • Updated dependencies [fc4f83e, dd1d17f, 26b3a5d]:
    • @ledgerhq/errors@6.16.4
    • @ledgerhq/hw-transport@6.30.6

7.1.6-next.0

Patch Changes

  • Updated dependencies [fc4f83e, dd1d17f, 26b3a5d]:
    • @ledgerhq/errors@6.16.4-next.0
    • @ledgerhq/hw-transport@6.30.6-next.0

7.1.5

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.3
    • @ledgerhq/hw-transport@6.30.5

7.1.5-next.0

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.3-next.0
    • @ledgerhq/hw-transport@6.30.5-next.0

7.1.4

Patch Changes

  • Updated dependencies [ee88785]:
    • @ledgerhq/errors@6.16.2
    • @ledgerhq/hw-transport@6.30.4

7.1.4-next.0

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.2-next.0
    • @ledgerhq/hw-transport@6.30.4-next.0

7.1.3

Patch Changes

  • Updated dependencies [eadebff]:
    • @ledgerhq/hw-transport@6.30.3

7.1.3-next.0

Patch Changes

  • Updated dependencies [eadebff]:
    • @ledgerhq/hw-transport@6.30.3-next.0

7.1.2

Patch Changes

  • Updated dependencies [16b4d7a]:
    • @ledgerhq/hw-transport@6.30.2

7.1.2-next.0

Patch Changes

  • Updated dependencies [16b4d7a]:
    • @ledgerhq/hw-transport@6.30.2-next.0

7.1.1

Patch Changes

  • Updated dependencies [52a3732, 4d1aade]:
    • @ledgerhq/hw-transport@6.30.1
    • @ledgerhq/errors@6.16.1

7.1.1-next.0

Patch Changes

  • Updated dependencies [52a3732, 4d1aade]:
    • @ledgerhq/hw-transport@6.30.1-next.0
    • @ledgerhq/errors@6.16.1-next.0

7.1.0

Minor Changes

Patch Changes

7.1.0-next.0

Minor Changes

Patch Changes

7.0.14

Patch Changes

7.0.14-next.0

Patch Changes

7.0.13

Patch Changes

  • Updated dependencies [a61a43fc47, 3455944496]:
    • @ledgerhq/errors@6.14.0
    • @ledgerhq/hw-transport@6.28.8

7.0.13-next.0

Patch Changes

  • Updated dependencies [a61a43fc47, 3455944496]:
    • @ledgerhq/errors@6.14.0-next.0
    • @ledgerhq/hw-transport@6.28.8-next.0

7.0.12

Patch Changes

  • Updated dependencies [c7c484acf0]:
    • @ledgerhq/errors@6.13.1
    • @ledgerhq/hw-transport@6.28.7

7.0.12-next.0

Patch Changes

  • Updated dependencies [c7c484acf0]:
    • @ledgerhq/errors@6.13.1-next.0
    • @ledgerhq/hw-transport@6.28.7-next.0

7.0.11

Patch Changes

  • Updated dependencies [0f4293e9bf]:
    • @ledgerhq/errors@6.13.0
    • @ledgerhq/hw-transport@6.28.6

7.0.11-next.0

Patch Changes

  • Updated dependencies [0f4293e9bf]:
    • @ledgerhq/errors@6.13.0-next.0
    • @ledgerhq/hw-transport@6.28.6-next.0

7.0.10

Patch Changes

  • Updated dependencies [9adc1862dd]:
    • @ledgerhq/errors@6.12.7
    • @ledgerhq/hw-transport@6.28.5

7.0.10-next.0

Patch Changes

  • Updated dependencies [9adc1862dd]:
    • @ledgerhq/errors@6.12.7-next.0
    • @ledgerhq/hw-transport@6.28.5-next.0

7.0.9

Patch Changes

  • Updated dependencies [77f990e207]:
    • @ledgerhq/errors@6.12.6
    • @ledgerhq/hw-transport@6.28.4

7.0.9-next.0

Patch Changes

  • Updated dependencies [77f990e207]:
    • @ledgerhq/errors@6.12.6-next.0
    • @ledgerhq/hw-transport@6.28.4-next.0

7.0.8

Patch Changes

  • Updated dependencies [87d2349fd8]:
    • @ledgerhq/errors@6.12.5
    • @ledgerhq/hw-transport@6.28.3

7.0.8-next.0

Patch Changes

  • Updated dependencies [87d2349fd8]:
    • @ledgerhq/errors@6.12.5-next.0
    • @ledgerhq/hw-transport@6.28.3-next.0

7.0.7

Patch Changes

7.0.7-next.0

Patch Changes

7.0.6

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.28.1

7.0.6-next.0

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.28.1-next.0

7.0.5

Patch Changes

  • Updated dependencies [c2779b1cab]:
    • @ledgerhq/hw-transport@6.28.0

7.0.5-next.0

Patch Changes

  • Updated dependencies [c2779b1cab]:
    • @ledgerhq/hw-transport@6.28.0-next.0

7.0.4

Patch Changes

  • Updated dependencies [3df451dafb, 20c5c5e109]:
    • @ledgerhq/errors@6.12.3
    • @ledgerhq/hw-transport@6.27.10

7.0.4-next.0

Patch Changes

  • Updated dependencies [3df451dafb, 20c5c5e109]:
    • @ledgerhq/errors@6.12.3-next.0
    • @ledgerhq/hw-transport@6.27.10-next.0

7.0.3

Patch Changes

  • Updated dependencies [f1c15446da]:
    • @ledgerhq/errors@6.12.2
    • @ledgerhq/hw-transport@6.27.9

7.0.3-next.0

Patch Changes

  • Updated dependencies [f1c15446da]:
    • @ledgerhq/errors@6.12.2-next.0
    • @ledgerhq/hw-transport@6.27.9-next.0

7.0.2

Patch Changes

  • Updated dependencies [856f49374e, 77056e3692]:
    • @ledgerhq/errors@6.12.1
    • @ledgerhq/hw-transport@6.27.8

7.0.2-next.0

Patch Changes

  • Updated dependencies [856f49374e, 77056e3692]:
    • @ledgerhq/errors@6.12.1-next.0
    • @ledgerhq/hw-transport@6.27.8-next.0

7.0.1

Patch Changes

7.0.1-next.0

Patch Changes

7.0.0

Major Changes

7.0.0-next.0

Major Changes

6.28.0

Major Changes

  • Add signOffchainMessage

6.27.6

Patch Changes

6.27.6-next.0

Patch Changes

  • #1356 ecac411d7a Thanks @juan-cortes! - Updated readme.md of packages

  • Updated dependencies [ecac411d7a]:

    • @ledgerhq/errors@6.11.1-next.0
    • @ledgerhq/hw-transport@6.27.6-next.0
    • @ledgerhq/logs@6.10.1-next.0

6.27.5

Patch Changes

  • Updated dependencies [1a94cbf28a]:
    • @ledgerhq/errors@6.11.0
    • @ledgerhq/hw-transport@6.27.5

6.27.5-next.0

Patch Changes

  • Updated dependencies [1a94cbf28a]:
    • @ledgerhq/errors@6.11.0-next.0
    • @ledgerhq/hw-transport@6.27.5-next.0

6.27.4

Patch Changes

  • Updated dependencies [ae5e33e15e]:
    • @ledgerhq/errors@6.10.2
    • @ledgerhq/hw-transport@6.27.4

6.27.4-next.0

Patch Changes

  • Updated dependencies [ae5e33e15]:
    • @ledgerhq/errors@6.10.2-next.0
    • @ledgerhq/hw-transport@6.27.4-next.0

6.27.3

Patch Changes

  • Updated dependencies [ecfdd1ebd8]:
    • @ledgerhq/hw-transport@6.27.3

6.27.3-next.0

Patch Changes

  • Updated dependencies [ecfdd1ebd]:
    • @ledgerhq/hw-transport@6.27.3-next.0

6.27.2

Patch Changes

  • Updated dependencies [203b927b4]:
    • @ledgerhq/errors@6.10.1
    • @ledgerhq/hw-transport@6.27.2

6.27.2-next.0

Patch Changes

  • Updated dependencies [203b927b4]:
    • @ledgerhq/errors@6.10.1-next.0
    • @ledgerhq/hw-transport@6.27.2-next.0