GitHub, Ledger Devs Discord, Developer Portal
Ledger Hardware Wallet Solana JavaScript bindings.
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.
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
If ledger returns error 6808
- enable blind signature in settings (not needed for unit testing).
Solana API
-
transport
Transport a transport for sending commands to a device -
scrambleKey
string a scramble key (optional, default"solana_default_scramble_key"
)
import Solana from "@ledgerhq/hw-app-solana";
const solana = new Solana(transport);
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.
solana.getAddress("44'/501'/0'").then(r => r.address)
Returns Promise<{address: Buffer}> an object with the address field
Sign a Solana transaction.
solana.signTransaction("44'/501'/0'", txBuffer).then(r => r.signature)
Returns Promise<{signature: Buffer}> an object with the signature field
Sign a Solana off-chain message.
solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
Returns Promise<{signature: Buffer}> an object with the signature field
Get application configuration.
solana.getAppConfiguration().then(r => r.version)
Returns Promise<AppConfig> application config object