Back to Nodes

Solana Signer

Last updated Jul 17, 2026

n8n node for signing Solana transactions via @solana/keychain backends (Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, and more)

151 Weekly Downloads
170 Monthly Downloads

Included Nodes

Solana Signer

Description

n8n Solana Signer

@orquestradev/n8n-nodes-solana-signer

!npm
!License: MIT
!n8n community node

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)

    1. Open your n8n instance
    2. Go to Settings → Community Nodes
    3. Click Install
    4. Enter: @orquestradev/n8n-nodes-solana-signer
    5. 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 -d

    n8n is available at http://localhost:5678.

    Stop:

    docker compose down
    

    Rebuild after updates:

    npm run build
    docker compose build
    docker compose up -d
    

    Data persists in a Docker volume (n8n_data). To wipe it:

    docker compose down -v
    

    Method 3 — npm (Self-hosted)

    cd ~/.n8n/custom
    npm install @orquestradev/n8n-nodes-solana-signer
    

    Restart n8n

    Method 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 n8n

    Configuration

    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:user@example.com |

    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...": ""
      }
    }
    

    Sign Transaction

    Signs a pre-built Solana transaction without broadcasting.

    Input:

  • transaction — base64-encoded wire-format transaction
  • Output:

    {
      "transaction": "",
      "signatures": {
        "7xKX...": ""
      }
    }
    

    Send Transaction

    Signs and broadcasts a transaction to a Solana RPC endpoint.

    Input:

  • transaction — base64-encoded wire-format transaction
  • rpcUrl — RPC endpoint (default: https://api.mainnet-beta.solana.com)
  • Output:

    {
      "signature": "",
      "signatures": { "7xKX...": "" }
    }
    

    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 CryptoKey in memory — it cannot be read back after creation.
  • Never commit private keys or credential values to source control.
  • Compatibility

    Tested against n8n 1.x (minimum 0.187.0, the first release with stable community node support) and Node.js 18/20.

    | n8n version | Status |
    |————-|——–|
    | >=1.0.0 | ✅ Tested |
    | 0.187.0 – 0.x | ✅ Community nodes supported |
    | <0.187.0 | ❌ Not supported (no community node API) |

    Requirements

  • n8n >=0.187.0
  • Node.js >=18
  • ---

    Resources

  • n8n community nodes documentation
  • @solana/keychain documentation
  • Contributing guide

---

License

MIT © berkayoztunc