Cointime

Download App
iOS & Android

NFT Teams: Free Yourself From Never-Ending IPFS Pinning Fees by Uploading Images to Arweave via the CLI Method

another lifetime, I was actually a marketing & business development director at a regional CPA firm. And prior to that, I was in marketing and business development at Deloitte. So, I’ve had a ton of marketing and sales training throughout my crazy-long career (I’m old — a GenXer through and through). Anyway, in that training, there’s a famous sales maxim that uses the mattress industry as an example: You aren’t selling mattresses, you’re selling sleep.

And, really, that is what Arweave, a decentralized data storage protocol, provides for the NFT space (and for other general permanent-storage-dependent business / industry niches, of course).

Yes, Arweave is a product / service. Yes, it’s a storage protocol. But those descriptions miss the mark because it’s the benefits of using Arweave that set it apart from the nonstop hassles of IPFS. IPFS is a mattress; Awreave is nice, peaceful sleep.

Okay, enough with the metaphors! Let’s get into some tech stuff. 

In the above, I was new to exploring the protocol, and I began by using the excellent GUI / web site, ArDrive. I still use ArDrive via the site/app, as it’s just a super interface and very intuitive. And, you know, even if you live life on the command line, it’s still nice to work visually on some things.

That all said, as I continued to explore Arweave, I realized that some specialized things I was doing called for a programmatic approach. And for that, ArDrive offers a CLI (here’s the github repo). It has various install options. For me, just a quick npm install & it was ready to go.

The github repo linked to above has super documentation that will cover most of the situations you’ll have when uploading. I thought I’d show some concrete examples of my own little process, just to show how easy it is to upload images. So, here’s my own process:

Prerequisites

You of course to have AR tokens in your Arweave wallet (how-to here), and you need to have the CLI installed in your IDE (see above).

1. Break your files into manageable chunks locally (in prep for uploading)

To be honest, I’m not 100% sure what the upload limits are. The repo mentions that that there is no theoretical limit on numbers of files (although you could be uploading thousands of really tiny files, so that’s understandable). But all in all, I seem to recall a 2–3 GB total size limit stated somewhere. I was definitely able to successfully upload MORE than the stated limit using the app, and I think the CLI allows even a bit more than the app does. (I’ll clarify this part later.) But anyway, for practical purposes, maybe limit your first few uploads to a few gigs, and go from there with pushing the limits. (Also, in fairness, it could depend on some outside factors. For instance, I have giga-bit service here, so I can upload at crazy high speeds, which might mean my limit differs from yours.)

2. Establish a folder into which you’ll put your NFT images.

While the CLI will let you easily do this, I actually like to just be on the ArDrive app for this part. You just click NEW and then “New Folder” and then name it. I’m in my “z_dog” drive here, and I’ve just made a folder called “test1”. When it’s done, I just click on it (and it highlights in pink — super handy) and then I click the info button (top center), and the right panel pops up where I can click the Folder ID icon to auto-copy that.

From there, I have a folder locally called “sample” into which I’ve popped 6 sample images for this article. So, to upload that, I simply need to go to a terminal and pop in the command:

ardrive upload-file --local-path /path/to/folder --parent-folder-id "FOLDERID" -w /path/to/wallet.json

Customize that with your folder ID (as copied above), paths to the upload folder, and wallet path, of course. But, upon running that, it soon returns a JSON wad of data related to what you just did there.

The top item is always a folder because I’m uploading a folder myself, and so that’s the ArDrive folder info for that local folder. (Did I say “folder” enough in that last sentence? lol). And below that is the data I sent and the various properties for each item.

BTW, if I wanted to fetch all of the individual file data as a nice clean JSON file, I could now run…

ardrive list-folder --parent-folder-id"e6be9dd8-e100-4a91-a822-c541076a87da"

… and I’d get a big JSON set of that whole folder:

That “dataTxID” is key for linking back out. We just preface it with https://arweave.net/ and, for example, the URL…

https://arweave.net/A4izFjirmqqs3Jhne1eYX0uwj5_dewAr4LZYLLECDvI

… indeed shows the dog I just uploaded:

(That’s a copy of an image from my Loopies NFT drop. Go grab one — the floor is currently just 48 cents! lol.)

Dealing with Latency

One important note here is that there’s a bit of latency in the system, in that Arweave needs some time to take in your upload and get it all situated. (“Situated” is a fine technical term, right?) The more you upload, the more time it needs (although, relatively speaking, it’s fairly quick). But, that’s why I wanted to show you the “list-folder” command — because you shouldn’t count on the immediate JSON response as being the final one.

The system needs a few minutes to fully process things. In fact, one thing that I’ve come to do as I upload is that I’ll do an upload (e.g., let’s say I’m uploading 1,000 NFT images), and then I’ll wait like five minutes and I’ll then run the “list folder” command. Then, I’ll save the JSON output of that to a file and programmatically iterate over that file to count the dataTxId instances. If my count matches the number of files that I uploaded, then it’s all finalized on Arweave. If the count comes up less than I expected, then it’s not done processing yet. (So I give it a few more minutes and then re-request the folder data via list-folder.)

And then, of course, once I know all 1,000 files are there, and have dataTxIds, I then simply iterate again over the final JSON file (from the list-folder command) and this time I save the dataTxIds into my database of NFT data. (Note that the JSON file includes the “name” field, which is the name of the file I’ve uploaded. So, that’s how I match up the dataTxIds to my NFT database when I do that update.)

Your own processes will vary, of course. Again, see the robust documentation for the ArDrive CLI tool! But the point is that there are many options for uploading files, both GUI and CLI, and they’re all easy, user-friendly, and intended to be permanent with no ongoing pinning fees, which means you’ll sleep better. 

https://medium.com/web-design-web-developer-magazine/nft-teams-free-yourself-from-never-ending-ipfs-pinning-fees-uploading-images-to-arweave-via-the-a94ca51e99f4

NFT
Comments

All Comments

Recommended for you

  • DeepSeek-V4 Preview Version Officially Launched and Open-Sourced

    On April 24, DeepSeek announced via its official WeChat account that the preview version of the new model series DeepSeek-V4 is officially online and open-sourced. DeepSeek-V4 features a million-word ultra-long context and leads in agent capabilities, world knowledge, and reasoning performance in both domestic and open-source fields. The model is available in two versions based on size. Starting today, users can log in to the official website chat.deepseek.com or the official app to interact with the latest DeepSeek-V4 and explore the new experience of 1M ultra-long context memory. The API service has also been updated; by changing the model_name to deepseek-v4-pro or deepseek-v4-flash, users can access it.

  • Intel CEO: Semiconductor Potential Market Size Approaching $1 Trillion

    On April 24, local time, after the U.S. stock market closed on April 23, Intel officially released its Q1 fiscal year 2026 financial report and held an earnings call. The company delivered its sixth consecutive quarter of better-than-expected results, with revenue, gross margin, and earnings per share all surpassing guidance. The AI business has become the core growth engine, with a surge in demand for server CPUs and advancements in advanced processes and packaging exceeding expectations. Following this financial report, Intel's stock price surged nearly 20% in after-hours trading. During the earnings call, Intel CEO Pat Gelsinger stated that despite continuous improvements in factory capacity, demand across all business segments remains higher than supply, particularly for Xeon server CPUs, which are expected to maintain strong growth momentum over the next two years. Gelsinger also noted, 'In recent years, the focus in high-performance computing has been almost entirely on graphics processors and other accelerators. In recent months, clear signs have shown that central processing units are becoming an indispensable foundation in the era of artificial intelligence.' Looking at the overall market, Gelsinger anticipates that driven by explosive growth in AI demand, the overall potential market size of the semiconductor industry is approaching $1 trillion. However, Intel's management also warned that the company still faces multiple pressures, including declining demand in the PC market, rising costs, expanding capital expenditures, and supply constraints. (Dongxin News Agency)

  • Trump: U.S. to Soon Capture Nearly 50% of Chip Market

    On April 24, U.S. President Trump declared on the 23rd that the United States will soon capture nearly 50% of the chip market, warning that chip companies that do not manufacture in the U.S. will face very high tariffs in a year and a half to two years. U.S. Secretary of Commerce Gina Raimondo stated that the U.S. previously held only 3% to 4% of the chip market while having the largest demand for chips. Under Trump's directive, the U.S. is requiring semiconductor fabs to return to domestic production, with expectations that fabs worth $1 trillion will come to the U.S. Raimondo emphasized that this is not about tech giants purchasing chips, but rather about chip manufacturing. She mentioned commitments from Micron Technology to invest $200 billion and TSMC to invest $165 billion, along with $500 billion in funds from Taiwan expected to flow into the U.S. Raimondo also indicated during a congressional hearing on the 23rd that investments in the U.S. semiconductor industry during Trump's term are expected to reach $1 trillion. (Dongxin News Agency)

  • MetaPlanet Issues Zero-Coupon Bonds Worth 8 Billion Yen to Increase Bitcoin Holdings

    On April 24, according to market news: Japan's Bitcoin treasury company MetaPlanet issued zero-coupon ordinary bonds worth 8 billion yen (approximately 53 million USD), with 100% of the raised funds allocated to increasing Bitcoin holdings, continuing the 'Japanese version of MicroStrategy' aggressive coin acquisition strategy.

  • Trump to Speak at Cryptocurrency Conference in Florida on Saturday

    April 24, White House, USA: Trump will speak at a cryptocurrency conference in Florida on Saturday. (Jin Shi)

  • Deepseek Official Website Releases deepseek-v4 API Documentation

    On April 24, Deepseek's official website launched the deepseek-v4 API and model introduction, including deepseek-v4-flash and deepseek-v4-pro. (Jinshi)

  • US Spot Bitcoin ETF Sees Net Inflow of $223.16 Million Yesterday

    On April 24, according to monitoring by Trader T, the US spot Bitcoin ETF experienced a net inflow of $223.16 million yesterday.

  • Trump States He Will Not Use Nuclear Weapons Against Iran

    On April 24, according to CCTV International News, during an event at the White House on the afternoon of April 23, U.S. President Trump told the media that he could reach an agreement with Iran right now, but he wants the agreement to be 'permanent,' ensuring that Iran never has the chance to possess nuclear weapons. Therefore, he does not want to rush. Trump stated, 'There is plenty of time,' 'there is absolutely no pressure,' and 'the real pressure is on Iran,' which is unable to restore oil transportation under U.S. maritime blockade. He added that if Iran does not want to reach an agreement, he would 'complete the remaining tasks through military means.' When asked if he would consider using nuclear weapons against Iran, Trump replied, 'No,' and stated that even without launching a nuclear strike, the U.S. has already 'completely destroyed' Iran. When pressed by reporters on why the conflict was not resolved within the initially stated 4 to 6 weeks, Trump repeatedly mentioned that the U.S. fought in the Vietnam War for 18 years, and claimed that the U.S. had actually 'militarily taken down Iran' within 6 weeks; now it is just a matter of 'both sides taking a break.' (Dongxin News Agency)

  • BTC Rises Above $78,000

    Market data shows that BTC has risen above $78,000, currently priced at $78,118, with a 24-hour decline narrowing to 0.82%. The market is experiencing significant volatility, so please ensure proper risk management.

  • BTC Falls Below $77,000

    Market data shows that BTC has fallen below $77,000, currently priced at $76,983.55, with a 24-hour decline of 2.36%. The market is experiencing significant volatility, so please ensure proper risk management.