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

  • Iran: Qatar Has Not Proposed New Plan to End Hostilities with the U.S.

    On October 28, according to Reuters: A senior Iranian official stated that Qatar has not proposed a new plan to end hostilities with the U.S. Several ideas put forward by Qatar are unacceptable to Iran. Iran's uncompromising policy on nuclear issues remains unchanged.

  • DBS Survey: 88% of Large Enterprises Have Used or Piloted Tokenized Currency

    On October 28, CoinDesk reported that DBS Bank commissioned EY to conduct a survey of 422 financial executives from large enterprises across 11 markets, each with annual revenues exceeding $500 million. The results showed that 88% of respondents have either used or piloted tokenized currency, with 24% having deployed it at scale, 43% having limited rollouts in certain markets, and 21% in pilot or proof-of-concept stages. Among the tools being used or planned for adoption, stablecoins accounted for 63%, tokenized deposits for 53%, and tokenized money market funds for 52%. Additionally, 71% of respondents indicated that real-time cross-border payments have improved or are expected to improve within two years. However, regulatory uncertainty, security risks, and challenges in system integration remain significant barriers, with approximately 64% of respondents hoping that banks will serve as a unified entry point into the tokenized currency ecosystem.

  • Short-Selling Address 0xb15b Liquidated 13 Times in Nine Days, Incurring Losses of Approximately $1.14 Million

    On October 28, data from on-chain analysis platform Lookonchain revealed that a trader created a new wallet, 0xb15b, nine days ago, depositing 1.25 million USDC and shorting ETH. Over the following nine days, this address was liquidated 13 times, with a total of 18,080 ETH liquidated, amounting to approximately $43.9 million, resulting in an actual loss of about $1.14 million.

  • AI Competition: Cash Flow Leaders Gain Advantage as Microsoft and Google Face Earnings Test

    On October 28, the stock price trends of Microsoft and Google have diverged significantly since their last earnings report. As the pressure of massive spending on artificial intelligence increasingly impacts corporate profits, Wall Street is scrutinizing the returns on AI investments from both companies. As major players in the AI field, both tech giants are set to announce their earnings after the market closes on Wednesday. Recent stock performance indicates that investors currently seem to favor Microsoft. The market anticipates that Google's free cash flow will be negative in both 2026 and 2027, while Microsoft's free cash flow is expected to decline in the current fiscal year ending next June, before recovering growth.

  • Netanyahu's Camp Secures 54 Seats After 70.7% of Votes Counted

    According to Israel's Channel 12, after 70.7% of the votes have been counted, Netanyahu's camp has secured 54 seats, the Eisenkot camp has obtained 47 seats, and the Arab parties have garnered 19 seats.

  • U.S. Optical Communication Stocks Rise Pre-Market, Mavenir, Corning, and Lumentum Up Over 2%

    On October 28, U.S. optical communication stocks saw a collective rise in pre-market trading. Among them, AXT Inc, MaxLinear, Credo Technology, Coherent, Applied Optoelectronics, Viavi Solutions, Ciena, Mavenir Technologies, Astera Labs, Corning, and Lumentum all increased by over 2%.

  • Seagate Technology Falls 4% Pre-Market, SK Hynix Rises 8%

    In pre-market trading, Seagate Technology is down about 4%, as the company's quarterly earnings guidance falls short of analyst expectations. NXP Semiconductors is down approximately 8%, despite a 19% year-over-year revenue increase in Q3 that exceeded expectations; however, the Q4 guidance is below expectations. SK Hynix is up about 8%, with the company's operating profit in the third quarter soaring sevenfold year-over-year, announcing an epic shareholder return of one trillion Korean won.

  • Walsh to Hold FOMC Press Conference at 2:30 PM ET

    On October 28, it was announced that Federal Reserve Chairman Kevin Walsh will hold a FOMC press conference at 2:30 PM ET.

  • Changxin Technology Included in Shanghai Composite Index as Top Weighted Stock

    On October 28, according to the website of the China Securities Index Company, Changxin Technology has been included in the Shanghai Composite Index with a weight of 4.67%, making it the largest weighted stock in the index. Agricultural Bank of China and Industrial and Commercial Bank of China rank second and third, with weightings of 3.83% and 3.77%, respectively. Changxin Technology has also been included in the Shanghai STAR Market Composite Index, with a weight of 15.74%, making it the top weighted stock there as well. According to the compilation plan, the weight factor will be adjusted on the next trading day after the second Friday of each month or when the newly included sample weight exceeds 15%.

  • SK Hynix Plans 100 Trillion Won Shareholder Returns by 2026

    On October 28, regulatory filings revealed that SK Hynix plans to distribute at least 30 trillion won in cash dividends and to repurchase and retire at least 60 trillion won worth of shares by 2026. The share buyback includes a recently completed 40 trillion won stock repurchase.