n8n-nodes-ngrave
v1.0.0
Published
A comprehensive n8n community node for NGRAVE ZERO hardware wallet integration providing 25 resources and 150+ operations for air-gapped cryptocurrency signing, PSBT workflows, multi-chain support, and GRAPHENE backup verification.
Maintainers
Readme
n8n-nodes-ngrave
[Velocity BPA Licensing Notice]
This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
For licensing information, visit https://velobpa.com/licensing or contact [email protected].
A comprehensive n8n community node for NGRAVE ZERO hardware wallet integration providing 25 resources and 150+ operations for air-gapped cryptocurrency signing, PSBT workflows, multi-chain support, and GRAPHENE backup verification.
Features
- Air-Gapped Security: Complete QR code-based communication with NGRAVE ZERO hardware wallet
- Multi-Chain Support: Bitcoin, Ethereum, EVM chains (Polygon, BSC, Avalanche, etc.), Solana, Cosmos, XRP, Cardano, and Polkadot
- PSBT Workflows: Full support for Partially Signed Bitcoin Transactions with UR encoding
- Multi-Signature: Create and manage multi-sig wallets with BSMS format support
- GRAPHENE Backup: Verify and manage GRAPHENE stainless steel backup plates
- LIQUID Integration: Seamless connection with NGRAVE LIQUID mobile companion app
- Watch-Only Export: Export to Sparrow, BlueWallet, Electrum, Bitcoin Core, and more
- EAL7 Security: Full access to NGRAVE's EAL7-certified security features
- Biometric & PIN: Manage device authentication settings
- Animated QR Codes: Support for large data transfers via multi-frame QR sequences
- UR Encoding: Full Uniform Resources (UR) codec support for PSBT, signing requests, and more
Installation
Community Nodes (Recommended)
- Open n8n
- Go to Settings > Community Nodes
- Click Install a community node
- Enter
n8n-nodes-ngrave - Click Install
Manual Installation
# Navigate to your n8n installation directory
cd ~/.n8n
# Install the package
npm install n8n-nodes-ngrave
# Restart n8nDevelopment Installation
# Clone the repository
git clone https://github.com/Velocity-BPA/n8n-nodes-ngrave.git
cd n8n-nodes-ngrave
# Install dependencies
npm install
# Build the project
npm run build
# Create symlink to n8n custom nodes directory
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-ngrave
# Restart n8n
n8n startCredentials Setup
NGRAVE ZERO Credentials
| Field | Description | Required | |-------|-------------|----------| | Device ID | Your NGRAVE ZERO device identifier | Yes | | Master Fingerprint | Master key fingerprint for verification | Yes | | QR Scan Mode | QR scanning method (camera/file upload) | Yes | | Animation Speed | Animated QR playback speed (ms) | No | | Connection Mode | Communication mode (qr/bluetooth) | Yes | | Network | Bitcoin network (mainnet/testnet/regtest) | Yes |
NGRAVE LIQUID Credentials
| Field | Description | Required | |-------|-------------|----------| | API Key | LIQUID app API key | Yes | | App ID | LIQUID application identifier | Yes | | Environment | Production or Sandbox | Yes | | Device Pairing Code | Code from LIQUID app | No |
NGRAVE Network Credentials
| Field | Description | Required | |-------|-------------|----------| | Bitcoin RPC URL | Bitcoin node RPC endpoint | No | | Ethereum RPC URL | Ethereum node RPC endpoint | No | | Custom RPC URLs | Additional chain RPC endpoints | No |
Resources & Operations
Device Management
getDeviceInfo- Get device information and specsgetFirmwareVersion- Get current firmware versiongetDeviceId- Get unique device identifiergetMasterFingerprint- Get master key fingerprintverifyAuthenticity- Verify device authenticitygetSecurityStatus- Get security status overviewgetBatteryStatus- Get battery level and statusgetScreenStatus- Get display statuscheckTamperStatus- Check for tamperinggetBiometricStatus- Get biometric sensor statusgetLightSensorStatus- Get ambient light sensor statusrunDiagnostics- Run device diagnostics
GRAPHENE Backup
getInfo- Get GRAPHENE backup informationverifyBackup- Verify backup integritygetRecoveryStatus- Get recovery phrase statusgetChecksum- Calculate backup checksumgetVersion- Get GRAPHENE versionvalidatePlate- Validate plate configuration
Account Management
getAccounts- List all accountsgetByChain- Get accounts by blockchaingetAddress- Get account addressgetXpub- Get extended public keyexportQr- Export account as QR codegetDescriptor- Get output descriptorsyncLiquid- Sync with LIQUID appgetMultiChain- Get multi-chain account infogetWatchOnly- Get watch-only export
QR Code Operations
generate- Generate QR codegenerateAnimated- Generate animated QR sequenceparse- Parse QR codeparseAnimated- Parse animated QR sequenceencodeUr- Encode data as URdecodeUr- Decode UR datasplit- Split data into fragmentsmergeParts- Merge QR fragmentsgetFrames- Get animation framesexportImage- Export QR as imagevalidate- Validate QR data
Bitcoin Operations
getAddress- Get Bitcoin address (legacy/segwit/native/taproot)getAddresses- Get multiple addressesgetExtendedPubkey- Get xpub/ypub/zpubcreatePsbt- Create PSBTsignPsbt- Sign PSBT on devicegenerateSignatureQr- Generate signature request QRimportSignatureQr- Import signed responsesignMessage- Sign messageverifyMessage- Verify signed messagegetUtxo- Get UTXOsbroadcast- Broadcast transactionexportWatchOnly- Export watch-only wallet
Ethereum Operations
getAddress- Get Ethereum addresssignTransaction- Sign transactionsignTypedData- Sign EIP-712 typed datasignMessage- Sign personal messagesignEip1559Transaction- Sign EIP-1559 transactiongenerateSignatureQr- Generate signature QRimportSignatureQr- Import signaturebroadcast- Broadcast transactiongetBalance- Get ETH balancegetAccountInfo- Get account details
EVM Chains Operations
Supports: Polygon, BSC, Avalanche, Arbitrum, Optimism, Fantom, Cronos, Gnosis, Base
getAddress- Get address for chainsignTransaction- Sign transactionsignMessage- Sign messagesignTypedData- Sign typed datagenerateSignatureQr- Generate signature QRimportSignature- Import signaturebroadcast- Broadcast transactiongetSupportedChains- List supported EVM chains
Solana Operations
getAddress- Get Solana addresssignTransaction- Sign transactionsignMessage- Sign messagegenerateSignatureQr- Generate signature QRimportSignature- Import signaturebroadcast- Broadcast transactiongetBalance- Get SOL balance
Cosmos Operations
getAddress- Get Cosmos addresssignTransaction- Sign transactionsignMessage- Sign messagebroadcast- Broadcast transaction
XRP Operations
getAddress- Get XRP addresssignTransaction- Sign transactionsignMessage- Sign messagebroadcast- Broadcast transaction
Cardano Operations
getAddress- Get Cardano addresssignTransaction- Sign transactionsignMessage- Sign messagebroadcast- Broadcast transaction
Polkadot Operations
getAddress- Get Polkadot addresssignTransaction- Sign transactionsignMessage- Sign messagebroadcast- Broadcast transaction
Multi-Chain Operations
getAllAddresses- Get addresses for all chainsgetPortfolio- Get portfolio overviewgetChainBalances- Get balances per chaingetTransactionHistory- Get cross-chain historygetSupportedChains- List all supported chains
Transaction Operations
createUnsigned- Create unsigned transactiongenerateQr- Generate transaction QRsign- Sign transactionimportSigned- Import signed transactionbroadcast- Broadcast transactiongetStatus- Get transaction statusestimateFee- Estimate transaction feeverify- Verify transaction
PSBT Operations
create- Create new PSBTimportFromQr- Import PSBT from QRimportFromBase64- Import from base64sign- Sign PSBTexportAsQr- Export as QR codeanalyze- Analyze PSBT contentsgetInfo- Get PSBT informationfinalize- Finalize PSBTextract- Extract raw transaction
Signing Operations
signTransaction- Generic transaction signingsignMessage- Generic message signingsignTypedData- Sign typed datasignHash- Sign raw hashsignPsbt- Sign PSBTgenerateSignatureQr- Generate signature QRparseSignatureQr- Parse signature responseverify- Verify signaturebatchSign- Batch sign multiple items
Multi-Signature Operations
createWallet- Create multi-sig walletimportConfig- Import multi-sig configexportConfig- Export configgetInfo- Get wallet infoaddCosigner- Add cosignergetCosigners- List cosignerssignPsbt- Sign as cosignergetAddress- Get multi-sig addressexportBsms- Export BSMS format
Watch-Only Operations
exportLiquid- Export for LIQUIDexportSparrow- Export for Sparrow walletexportBlueWallet- Export for BlueWalletexportElectrum- Export for ElectrumexportBitcoinCore- Export for Bitcoin CoreexportJson- Export as JSONexportDescriptor- Export output descriptorgetQr- Get export QR code
LIQUID Operations
connect- Connect to LIQUID appsync- Sync accountsgetPortfolio- Get portfoliogetTransactions- Get transactionsimportAccount- Import accountsendTransaction- Send transactiongetSettings- Get app settingsgetVersion- Get app version
Biometric Operations
getStatus- Get biometric statusisEnabled- Check if enabledgetEnrolledFingerprints- List fingerprintsauthenticate- Trigger authenticationgetSettings- Get biometric settings
PIN Operations
getStatus- Get PIN statuschange- Change PINset- Set new PINreset- Reset PINgetAttempts- Get remaining attemptsisRequired- Check if PIN required
Backup Operations
getStatus- Get backup statusverifyGraphene- Verify GRAPHENEgetWordCount- Get word countverifyWords- Verify recovery wordsgetChecksum- Get backup checksumexportInfo- Export backup info
Security Operations
getSecurityLevel- Get security levelverifyAuthenticity- Verify devicegetTamperStatus- Check tamperinggetLightSensorStatus- Get light sensorgetPhysicalSecurity- Physical security statusrunSecurityCheck- Run security auditgetEal7Certification- Get EAL7 infogetEntropyQuality- Get entropy qualityfactoryReset- Factory reset device
Firmware Operations
getVersion- Get firmware versioncheckUpdates- Check for updatesgetChangelog- Get version changelogverifySignature- Verify firmware signaturegetBootloaderVersion- Get bootloader versiongetSecureElementVersion- Get SE version
Utility Operations
getSupportedChains- List all chainsgetDerivationPaths- Get derivation pathsvalidateAddress- Validate address formatgetQrSettings- Get QR settingsgetAnimationSpeed- Get animation speedtestConnection- Test device connectiongetDeviceHealth- Get health status
Trigger Node
The NGRAVE Trigger node monitors for events:
Trigger Types
- QR Scan Events: New QR code scanned
- Signing Events: Transaction signed, PSBT signed, message signed
- Transaction Events: Transaction created, broadcast, confirmed
- Account Events: Account added, removed, synced
- Device Events: Connected, disconnected, unlocked
- LIQUID Events: Sync complete, portfolio updated
- GRAPHENE Events: Backup verified, checksum validated
- Multi-Sig Events: Cosigner added, threshold reached
Usage Examples
Sign Bitcoin Transaction
// Create and sign a Bitcoin PSBT
const workflow = {
nodes: [
{
name: 'Create PSBT',
type: 'n8n-nodes-ngrave.nGrave',
parameters: {
resource: 'psbt',
operation: 'create',
inputs: [{ txid: '...', vout: 0, value: 100000 }],
outputs: [{ address: 'bc1q...', value: 50000 }]
}
},
{
name: 'Sign on Device',
type: 'n8n-nodes-ngrave.nGrave',
parameters: {
resource: 'psbt',
operation: 'sign',
psbtBase64: '={{$node["Create PSBT"].json.psbt}}'
}
}
]
};Multi-Chain Portfolio
// Get portfolio across all chains
const workflow = {
nodes: [
{
name: 'Get Portfolio',
type: 'n8n-nodes-ngrave.nGrave',
parameters: {
resource: 'multiChain',
operation: 'getPortfolio'
}
}
]
};Export Watch-Only Wallet
// Export for Sparrow wallet
const workflow = {
nodes: [
{
name: 'Export to Sparrow',
type: 'n8n-nodes-ngrave.nGrave',
parameters: {
resource: 'watchOnly',
operation: 'exportSparrow',
accountIndex: 0,
addressType: 'native_segwit'
}
}
]
};NGRAVE Concepts
Air-Gapped Security
NGRAVE ZERO never connects to the internet or any network. All communication happens via QR codes, ensuring complete isolation from online threats.
GRAPHENE Backup
GRAPHENE is NGRAVE's stainless steel backup solution:
- Fire resistant up to 1400°C (2500°F)
- Waterproof and corrosion resistant
- 100+ year lifespan
- Supports 12, 18, or 24 word recovery phrases
EAL7 Certification
NGRAVE ZERO is the world's first EAL7-certified hardware wallet, the highest security certification available for consumer electronics.
Uniform Resources (UR)
UR is a standard for encoding structured binary data in QR codes, enabling efficient transfer of PSBTs, signing requests, and other crypto data.
Networks
| Network | Chain ID | Address Format | |---------|----------|----------------| | Bitcoin Mainnet | - | 1..., 3..., bc1q..., bc1p... | | Bitcoin Testnet | - | m..., n..., 2..., tb1... | | Ethereum | 1 | 0x... | | Polygon | 137 | 0x... | | BSC | 56 | 0x... | | Avalanche | 43114 | 0x... | | Arbitrum | 42161 | 0x... | | Optimism | 10 | 0x... | | Solana | - | Base58 | | Cosmos | - | cosmos1... | | XRP | - | r... | | Cardano | - | addr1... | | Polkadot | - | 1... |
Error Handling
The node includes comprehensive error handling:
{
success: false,
error: {
code: 'DEVICE_NOT_CONNECTED',
message: 'NGRAVE ZERO device not detected',
suggestion: 'Ensure device is powered on and QR code is visible'
}
}Common Error Codes
DEVICE_NOT_CONNECTED- Device not detectedQR_PARSE_ERROR- Failed to parse QR codeINVALID_PSBT- Invalid PSBT formatSIGNING_REJECTED- User rejected signingINVALID_ADDRESS- Invalid address formatNETWORK_MISMATCH- Network configuration mismatch
Security Best Practices
- Never expose seed phrases - NGRAVE ZERO keeps keys secure
- Verify addresses - Always verify on device screen
- Use multi-sig - For high-value accounts
- Regular backups - Verify GRAPHENE periodically
- Keep firmware updated - Check for security updates
- Secure environment - Use in private, secure location
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint
npm run lint
# Format code
npm run formatAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: Velocity-BPA
Licensing
This n8n community node is licensed under the Business Source License 1.1.
Free Use
Permitted for personal, educational, research, and internal business use.
Commercial Use
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
For licensing inquiries: [email protected]
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
Support
- Documentation: GitHub Wiki
- Issues: GitHub Issues
- NGRAVE Support: ngrave.io
