@orquestradev/n8n-nodes-solana-signer
v0.1.0
Published
n8n node for signing Solana transactions via @solana/keychain backends (Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, and more)
Maintainers
Readme
@orquestradev/n8n-nodes-solana-signer
Sign Solana transactions and messages inside your n8n workflows — using any of 13 pluggable signing backends powered by @solana/keychain.
Features
Operations
- Get Wallet Address — return the public key for a configured signer
- Sign Message — sign arbitrary UTF-8 messages
- Sign Transaction — sign a base64-encoded Solana transaction (wire format)
- Send Transaction — sign + broadcast to any Solana RPC endpoint, return tx signature
Backends | Backend | Use Case | |---------|----------| | Memory (Local Keypair) | Dev/automation, base58 or JSON-array private key | | HashiCorp Vault | Enterprise secrets management | | AWS KMS | AWS-managed key signing | | GCP KMS | Google Cloud-managed key signing | | Privy | Privy embedded wallet | | Turnkey | Turnkey MPC wallet | | Fireblocks | Fireblocks institutional custody | | Coinbase CDP | Coinbase Developer Platform wallet | | Dfns | Dfns MPC wallet | | Crossmint | Crossmint wallet | | Openfort | Openfort backend wallet | | Para MPC | Para MPC wallet | | Utila | Utila wallet |
Installation
Method 1 — n8n UI (Recommended)
- Open your n8n instance
- Go to Settings → Community Nodes
- Click Install
- Enter:
@orquestradev/n8n-nodes-solana-signer - Click Install and restart n8n when prompted
Requires n8n v0.187.0 or later with community nodes enabled.
Method 2 — Docker Compose (Self-hosted)
This repo ships a ready-to-use docker-compose.yml that bundles n8n with the node pre-installed.
Clone and start:
git clone https://github.com/berkayoztunc/n8n-nodes-solana-signer
cd n8n-nodes-solana-signer
npm install
npm run build
docker compose up -dn8n is available at http://localhost:5678.
Stop:
docker compose downRebuild after updates:
npm run build
docker compose build
docker compose up -dData persists in a Docker volume (n8n_data). To wipe it:
docker compose down -vMethod 3 — npm (Self-hosted)
cd ~/.n8n/custom
npm install @orquestradev/n8n-nodes-solana-signer
# Restart n8nMethod 4 — Local Development / Symlink
git clone https://github.com/berkayoztunc/n8n-nodes-solana-signer
cd n8n-nodes-solana-signer
npm install
npm run build
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-solana-signer
# Restart n8nConfiguration
Each backend uses its own credential type. Create credentials in n8n under Credentials → New.
Memory (Local Keypair)
| Field | Description |
|-------|-------------|
| Private Key | Base58 private key or Solana CLI JSON array [1,2,...,64] |
HashiCorp Vault
| Field | Description |
|-------|-------------|
| Vault URL | e.g. http://127.0.0.1:8200 |
| Token | Vault auth token |
| Key Name | Transit key name |
| Mount Path | Transit engine mount (default: transit) |
AWS KMS
| Field | Description |
|-------|-------------|
| Access Key ID | AWS access key |
| Secret Access Key | AWS secret key |
| Region | e.g. us-east-1 |
| Key ID | KMS key ID or ARN |
GCP KMS
| Field | Description |
|-------|-------------|
| Project ID | GCP project ID |
| Location ID | e.g. global or us-east1 |
| Key Ring ID | KMS key ring name |
| Key ID | KMS key name |
| Service Account Credentials JSON | Service account JSON string |
Privy
| Field | Description | |-------|-------------| | App ID | Privy application ID | | App Secret | Privy application secret | | Wallet ID | Target wallet ID |
Turnkey
| Field | Description | |-------|-------------| | API Public Key | Turnkey API public key | | API Private Key | Turnkey API private key | | Organization ID | Turnkey organization ID | | Wallet Account Address | Solana wallet account address |
Fireblocks
| Field | Description |
|-------|-------------|
| API Key | Fireblocks API key |
| Secret Key (PEM) | RSA private key in PEM format |
| Vault Account ID | Vault account ID (default: 0) |
| Asset ID | e.g. SOL or SOL_TEST |
Coinbase CDP
| Field | Description | |-------|-------------| | API Key Name | CDP API key name | | API Private Key | CDP API private key | | Wallet ID | CDP wallet ID | | Wallet Address | Solana wallet address |
Dfns
| Field | Description | |-------|-------------| | App ID | Dfns application ID | | Auth Token | Dfns auth token | | Wallet ID | Dfns wallet ID | | Service Account Credential | Service account key/JSON |
Crossmint
| Field | Description |
|-------|-------------|
| API Key | Crossmint API key |
| Wallet Locator | e.g. email:[email protected] |
Openfort
| Field | Description | |-------|-------------| | Secret Key | Openfort secret key | | Account Address | Solana pubkey |
Para MPC
| Field | Description | |-------|-------------| | API Key | Para API key | | Wallet ID | Para wallet ID |
Utila
| Field | Description | |-------|-------------| | API Key | Utila API key | | Vault ID | Utila vault ID | | Wallet ID | Utila wallet ID |
Operations Reference
Get Wallet Address
Returns the public key (base58) for the configured signer.
Output:
{ "address": "7xKX..." }Sign Message
Signs a UTF-8 string message.
Input:
message— string to sign
Output:
{
"message": "hello world",
"signatures": {
"7xKX...": "<base64-signature>"
}
}Sign Transaction
Signs a pre-built Solana transaction without broadcasting.
Input:
transaction— base64-encoded wire-format transaction
Output:
{
"transaction": "<base64-signed-tx>",
"signatures": {
"7xKX...": "<base64-signature>"
}
}Send Transaction
Signs and broadcasts a transaction to a Solana RPC endpoint.
Input:
transaction— base64-encoded wire-format transactionrpcUrl— RPC endpoint (default:https://api.mainnet-beta.solana.com)
Output:
{
"signature": "<base58-tx-signature>",
"signatures": { "7xKX...": "<base64-sig>" }
}Security Notes
- Private keys and API secrets are stored in n8n's encrypted credential store — never in workflow JSON.
- For production wallets, prefer a remote signing backend (AWS KMS, GCP KMS, Turnkey, Privy, etc.) over the Memory backend.
- The Memory backend holds the private key as a non-extractable
CryptoKeyin memory — it cannot be read back after creation. - Never commit private keys or credential values to source control.
Requirements
- n8n
>=0.187.0 - Node.js
>=18
License
MIT © berkayoztunc
