[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 licensing@velobpa.com.
A comprehensive n8n community node package for Arbitrum blockchain integration. This toolkit provides complete access to Arbitrum One, Arbitrum Nova, and testnets with support for bridging, DeFi operations, smart contracts, NFTs, and Arbitrum-specific features like Stylus (WASM contracts) and retryable tickets.
- Multi-Network Support: Arbitrum One, Nova, Sepolia testnet, Goerli (deprecated), Custom RPC
- L1 ↔ L2 Bridging: Full bridge operations with retryable tickets and withdrawal tracking
- DeFi Operations: Uniswap V3, Chainlink price feeds, swap execution
- Smart Contracts: Read/write operations, ABI encoding, multicall
- NFT Operations: ERC-721 and ERC-1155 support
- Stylus Support: Rust/WASM smart contract interactions
- Real-time Triggers: Block monitoring, token transfers, price alerts
| Resource | Operations | Description |
|---|---|---|
| Account | 9 | Balances, transaction history, address validation |
| Transaction | 14 | Send ETH, gas estimation, transaction status |
| Token | 9 | ERC-20 transfers, approvals, token info |
| NFT | 11 | ERC-721/ERC-1155 transfers, metadata |
| Contract | 11 | Read/write, deploy, multicall, events |
| Block | 6 | Block info, L1 block correlation |
| Events | 6 | Log filtering, event decoding |
| Bridge | 14 | L1↔L2 deposits, withdrawals, gateway info |
| Retryable | 7 | Ticket status, redemption, lifecycle |
| L2 to L1 | 7 | Outbox proofs, challenge period, execution |
| Nova | 4 | DAC info, gas comparison |
| Stylus | 5 | WASM contracts, activation, gas estimation |
| DeFi | 8 | Swaps, prices, liquidity pools |
| Utility | 11 | Unit conversion, ABI encoding, signing |
- New Block monitoring
- Address activity tracking
- ERC-20 token transfers
- NFT transfers
- Custom contract events
- Balance change alerts
- Large transaction detection
- Price alerts (Chainlink)
- Bridge deposit/withdrawal events
- Large DEX swap monitoring
- Go to Settings → Community Nodes in n8n
- Click Install a community node
- Enter
n8n-nodes-arbitrum - Click Install
cd ~/.n8n/nodes
npm install n8n-nodes-arbitrumgit clone https://github.com/Velocity-BPA/n8n-nodes-arbitrum.git
cd n8n-nodes-arbitrum
npm install
npm run build
npm link
# In your n8n installation directory
npm link n8n-nodes-arbitrum- In n8n, go to Credentials → New Credential
- Search for "Arbitrum RPC"
- Configure:
- Network: Select Arbitrum One, Nova, Sepolia, or Custom
- RPC URL: Auto-populated or custom endpoint
- Private Key: Required for write operations (transfers, swaps)
- Chain ID: Auto-populated based on network
Recommended RPC Providers:
- Alchemy - High performance, generous free tier
- Infura - Reliable, MetaMask integration
- QuickNode - Fast, multiple chains
- Ankr - Affordable, decentralized
For enhanced transaction history and contract verification:
- Get an API key from Arbiscan
- Create "Arbiscan API" credential in n8n
- Enter your API key
// Send 0.1 ETH to an address on Arbitrum One
{
"resource": "transaction",
"operation": "sendEth",
"toAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98",
"amount": "0.1"
}// Get USDC balance for an address
{
"resource": "token",
"operation": "getBalance",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98",
"tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831" // USDC on Arbitrum
}// Transfer 100 USDC
{
"resource": "token",
"operation": "transfer",
"tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"toAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98",
"amount": "100"
}// Initiate ETH deposit from Ethereum to Arbitrum
{
"resource": "bridge",
"operation": "depositEth",
"amount": "1.0",
"l1Provider": "https://eth-mainnet.alchemyapi.io/v2/YOUR_KEY"
}// Check status of L1→L2 deposit
{
"resource": "bridge",
"operation": "getDepositStatus",
"txHash": "0x1234567890abcdef..."
}// Withdraw ETH from Arbitrum to Ethereum
// Note: 7-day challenge period applies
{
"resource": "bridge",
"operation": "withdrawEth",
"amount": "0.5"
}// Track L2→L1 withdrawal progress
{
"resource": "l2tol1",
"operation": "getMessageStatus",
"txHash": "0xabcdef123456..."
}
// Returns: UNCONFIRMED, CONFIRMED, or EXECUTED// After 7-day challenge period, execute on L1
{
"resource": "l2tol1",
"operation": "executeMessage",
"txHash": "0xabcdef123456..."
}// Check status of L1→L2 retryable ticket
{
"resource": "retryable",
"operation": "getStatus",
"ticketId": "0x..."
}
// Returns: NOT_CREATED, CREATED, REDEEMED, or EXPIRED// Manually redeem a retryable ticket that failed auto-redeem
{
"resource": "retryable",
"operation": "redeem",
"ticketId": "0x..."
}// Get ETH price from Chainlink oracle
{
"resource": "defi",
"operation": "getTokenPrice",
"token": "ETH"
}// Swap 0.1 ETH for USDC on Uniswap V3
{
"resource": "defi",
"operation": "swap",
"tokenIn": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", // WETH
"tokenOut": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", // USDC
"amountIn": "0.1",
"slippageBps": "50", // 0.5% slippage
"recipient": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98"
}// Approve token spending and execute swap in one flow
{
"resource": "defi",
"operation": "approveAndSwap",
"tokenIn": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", // USDC
"tokenOut": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", // WETH
"amountIn": "100",
"slippageBps": "50"
}// Read totalSupply from ERC-20 contract
{
"resource": "contract",
"operation": "read",
"contractAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"functionName": "totalSupply",
"abi": "[{\"name\":\"totalSupply\",\"type\":\"function\",\"inputs\":[],\"outputs\":[{\"type\":\"uint256\"}]}]"
}// Call a contract function that modifies state
{
"resource": "contract",
"operation": "write",
"contractAddress": "0x...",
"functionName": "stake",
"args": "[1000000000000000000]",
"abi": "[{\"name\":\"stake\",\"type\":\"function\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}]}]"
}// Execute multiple read calls in one request
{
"resource": "contract",
"operation": "multicall",
"calls": [
{
"target": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"functionName": "totalSupply",
"abi": "..."
},
{
"target": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"functionName": "balanceOf",
"args": ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98"],
"abi": "..."
}
]
}// Retrieve NFT metadata and attributes
{
"resource": "nft",
"operation": "getMetadata",
"contractAddress": "0x...",
"tokenId": "1234"
}// Transfer an ERC-721 NFT
{
"resource": "nft",
"operation": "transfer",
"contractAddress": "0x...",
"tokenId": "1234",
"toAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98"
}// Compare gas costs between Arbitrum One and Nova
{
"resource": "nova",
"operation": "compareGasCosts"
}// Get info about a Stylus (WASM) contract
{
"resource": "stylus",
"operation": "getContractInfo",
"contractAddress": "0x..."
}// Calculate total gas including L1 data fee
{
"resource": "utility",
"operation": "calculateTotalGas",
"toAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98",
"data": "0xa9059cbb000000000000000000000000...",
"value": "0"
}// Sign a message with EIP-191 personal sign
{
"resource": "utility",
"operation": "signMessage",
"message": "Hello Arbitrum!",
"signType": "personal"
}// Trigger on every new Arbitrum block
{
"eventType": "newBlock",
"confirmations": 1
}// Trigger when address receives or sends transactions
{
"eventType": "addressActivity",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98",
"direction": "both" // incoming, outgoing, or both
}// Trigger on USDC transfers to specific address
{
"eventType": "tokenTransfer",
"tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"filterAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD98"
}// Trigger when ETH price reaches target
{
"eventType": "priceAlert",
"priceFeed": "ETH/USD",
"targetPrice": "4000",
"comparison": "above" // above, below, or equals
}// Trigger on transactions over 100 ETH
{
"eventType": "largeTransaction",
"thresholdEth": "100"
}// Trigger on specific contract event
{
"eventType": "contractEvent",
"contractAddress": "0x...",
"eventAbi": "[{\"name\":\"Transfer\",\"type\":\"event\",...}]",
"eventName": "Transfer"
}Arbitrum transactions include an L1 data fee for posting transaction data to Ethereum. This is in addition to the L2 execution gas. Use the "Calculate Total Gas" operation to estimate both components.
When bridging from L1 to L2, transactions use retryable tickets:
- Ticket Created: Transaction submitted on L1
- Auto-Redeem Attempted: Sequencer tries to execute on L2
- Success/Failure: Either completes or needs manual redemption
- Manual Redeem: If auto-redeem fails, anyone can redeem within 7 days
Withdrawals from Arbitrum to Ethereum have a 7-day challenge period:
- Initiate: Start withdrawal on L2
- Wait: 7-day challenge period
- Ready: Can execute on L1 after challenge period
- Execute: Claim funds on Ethereum
Nova uses a Data Availability Committee (DAC) instead of posting all data to Ethereum:
- ~95% cheaper for data posting
- Slightly different trust assumptions
- Best for high-throughput, gaming, social apps
Stylus enables WASM smart contracts on Arbitrum:
- Write contracts in Rust, C, C++
- 10-100x cheaper for compute-heavy operations
- Interoperable with Solidity contracts
| Network | Chain ID | Explorer | Native Token |
|---|---|---|---|
| Arbitrum One | 42161 | arbiscan.io | ETH |
| Arbitrum Nova | 42170 | nova.arbiscan.io | ETH |
| Sepolia Testnet | 421614 | sepolia.arbiscan.io | ETH |
| Token | Address |
|---|---|
| WETH | 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 |
| USDC | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| USDC.e (Bridged) | 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8 |
| USDT | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 |
| DAI | 0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1 |
| ARB | 0x912CE59144191C1204E64559FE8253a0e49E6548 |
| GMX | 0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a |
| LINK | 0xf97f4df75117a78c1A5a0DBb814Af92458539FB4 |
| DEX | Router Address |
|---|---|
| Uniswap V3 | 0xE592427A0AEce92De3Edee1F18E0157C05861564 |
| SushiSwap | 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506 |
| Camelot | 0xc873fEcbd354f5A56E00E710B90EF4201db2448d |
| 1inch | 0x1111111254fb6c44bac0bed2854e76f90643097d |
| Precompile | Address | Purpose |
|---|---|---|
| ArbSys | 0x64 | L2 system info, withdrawals |
| ArbGasInfo | 0x6c | Gas pricing info |
| ArbRetryableTx | 0x6e | Retryable ticket management |
| NodeInterface | 0xc8 | Gas estimation, L1 data fee |
| ArbWasm | 0x71 | Stylus WASM contracts |
| ArbWasmCache | 0x72 | Stylus caching |
The node provides descriptive error messages for common issues:
- INSUFFICIENT_FUNDS: Not enough ETH/tokens for transaction + gas
- NONCE_TOO_LOW: Transaction already processed
- GAS_PRICE_TOO_LOW: Increase gas price or use speed up
- CONTRACT_REVERT: Smart contract execution failed
- INVALID_ADDRESS: Malformed Ethereum address
- BRIDGE_ERROR: L1↔L2 bridge operation failed
- RETRYABLE_EXPIRED: Retryable ticket expired (7 days)
- Never share private keys - Use environment variables
- Test on Sepolia first - Verify workflows before mainnet
- Set gas limits - Prevent runaway transaction costs
- Verify addresses - Double-check recipient addresses
- Monitor bridge transactions - Track retryable tickets
- Understand withdrawal delays - 7-day challenge period for L2→L1
- RPC Calls: Varies by provider (typically 10-100/second)
- Arbiscan API: 5 calls/second (free tier)
- Chainlink Price Feeds: No rate limit (on-chain)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
- GitHub Issues: Report bugs
- n8n Community: Community forum
- Arbitrum Docs: developer.arbitrum.io
This n8n community node is licensed under the Business Source License 1.1.
Permitted for personal, educational, research, and internal business use.
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
For licensing inquiries: licensing@velobpa.com
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Velocity BPA
- Website: velobpa.com
- GitHub: Velocity-BPA
- Arbitrum - Layer 2 scaling solution
- n8n - Workflow automation platform
- ethers.js - Ethereum library
- Chainlink - Price feed oracles
Built with ❤️ by Velocity BPA