Skip to main content



npm install -g @bundlr-network/client


All the below examples are for payment in Arweave in atomic units. Simply change your wallet (-w) and currency (-c) flags to use another currency.

CLI usage

Usage: Bundlr [options] [command]

-h, --host <string> Bundlr node hostname/URL (eg
-w, --wallet <string> Path to keyfile or the private key itself (default: "default")
-c, --currency <string> The currency to use
--timeout <number> The timeout (in ms) for API HTTP requests - increase if you get timeouts for upload
--no-confirmation Disable confirmations for certain actions
--multiplier <number> Adjust the multiplier used for tx rewards - the higher the faster the network will
process the transaction. (default: "1.00")
--batch-size <number> Adjust the upload-dir batch size (process more items at once - uses more resources
(network, memory, cpu) accordingly!) (default: "5")
--debug, -d Increases verbosity of errors and logs additional debug information. Used for
troubleshooting. (default: false)
--index-file <string> Name of the file to use as an index for upload-dir manifests (relative to the path
provided to upload-dir).
--provider-url <string> Override the provider URL
--contract-address <string> Override the contract address
--content-type <string> Override the content type for *ALL* files uploaded
--remove-deleted Removes previously uploaded (but now deleted) items from the manifest
--force-chunking Forces usage of chunking for all files regardless of size
-v, --version Gets the current package version of the bundlr client
--help display help for command

balance <address> Gets the specified user's balance for the current Bundlr node
withdraw <amount> Sends a fund withdrawal request
upload <file> Uploads a specified file
upload-dir <folder> Uploads a folder (with a manifest)
deploy <folder> (DEPRECATED - use the functionally identical 'upload-dir' instead.) Deploys a folder
(with a manifest) to the specified bundler
fund <amount> Funds your account with the specified amount of atomic units
price <bytes> Check how much of a specific currency is required for an upload of <amount> bytes
help [command] display help for command

Example Usage


To disable the confirmations for non-interactive operation, use the --no-confirmation flag.
Anything that requires a wallet file (with currency set to Arweave -withdraw, fund, upload) will automatically try to load "./wallet.json", unless overridden by the -w flag. For non-Arweave commands, the -w flag is required.

All units used by this CLI are atomic units - go to the FAQ to learn more.

Get an address' balance

$ bundlr balance Ry2bDGfBIvYtvDPYnf0eg_ijH4A1EDKaaEEecyjbUQ4 -h -c arweave

> Balance: 49999940705312 Winston (49.99994AR)

Fund a Bundlr node

$ bundlr fund 1479016 -h -w wallet.json -c arweave

> ? Confirmation: send 1479016 Winston to (Ry2bDGfBIvYtvDPYnf0eg_ijH4A1EDKaaEEecyjbUQ4)?
> Y / N y
> Funding receipt:
> Amount: 1479016 with Fee: 1379016 to Ry2bDGfBIvYtvDPYnf0eg_ijH4A1EDKaaEEecyjbUQ4
> ID: 7cI6jpfpx6A2z8F5AoVHvZn9Az_BWPgvKzBCoE5w07A

Withdraw balance from a Bundlr node

$ bundlr withdraw 1479016 -h -w wallet.json -c arweave

> ? Confirmation: withdraw 1479016 winston from (Ry2bDGfBIvYtvDPYnf0eg_ijH4A1EDKaaEEecyjbUQ4)?
> Y / N y
> Withdrawal request for 1479016 winston successful
> Transaction ID: xcmxJmHyNS502fzqiT66rNeIOSldKGDWR8XsL9auDfs with network fee 1379016 for a total cost of 2858032

Upload a file to a Bundlr node

$ bundlr upload image.png -h -w wallet.json -c arweave

> Uploaded to

Check the price of a Bundlr node

$ bundlr price 1000 -h -c arweave

> Price for 1000 bytes in arweave is 432932 winston (0.000000432932 arweave)

Upload a folder to a Bundlr node

$ bundlr upload-dir ./testFolder -c arweave -h

> Loaded address: 7smNXWVNbTinRPuKbrke0XR0N9N6FgTBVCh20niXEbU
> ? Authorize upload?
> Total amount of data: 72947780 bytes over 1000 files - cost: 17069780520 winston (0.01706978052 arweave)
> Y / N y
> Uploading items 0 to 50
> Uploading items 50 to 100
> Uploading items 950 to 1000
> Finished uploading 1000 items (0 failures)
> Uploaded to tVsrI5jVbvePUf6_cwNmGQ5i9vNnZCY7LuONOA1tm08

If you find an error that is not suitably descriptive, or that you believe is incorrect, let us know either via our GitHub/Discord (links in the footer of this page)