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

  • Insider: Trump team supports Kevin Warsh as US Treasury Secretary

     informed sources said that the Trump team supports Kevin Warsh as the US Treasury Secretary, and discussions are still ongoing.

  • Lido is preparing a blockchain identity verification platform codenamed "Y" to compete with World Network

    According to insiders, Cyber Fund, led by Lido co-founders Konstantin Lomashuk and Vasiliy Shapovalov, is preparing a blockchain identity verification platform codenamed "Y" to directly compete with Sam Altman's World Network. Unlike World Network, which uses iris scanning for identity verification, the Y project will use users' social media and blockchain activity data, combined with Ethereum Attestation Service, to verify their identity. The solution aims to address the risk of biometric data leakage and minimize the potential for fraud.

  • Tether announces upcoming investment in stablecoin company Quantoz Payments

    On November 18th, Tether announced that it will invest in Quantoz Payments to launch EURQ and USDQ electronic currency tokens (EMT) that comply with the MiCAR standard for the euro and the US dollar respectively. Tether has not disclosed the amount of its investment, and Quantoz will use Tether's Hadron asset tokenization platform.

  • U.S. 30-year Treasury yield rises to 4.68%

    30-year US Treasury bond yield rose to 4.68%, the highest level since May 31.

  • NANO LABS announces Bitcoin as its strategic reserve asset

    Nano Labs announced that it will use Bitcoin as its strategic reserve asset.

  • Revolut Launches Staking Feature for Six Cryptocurrencies, Allowing Users to Earn Rewards

    Revolut, a prominent digital bank, has introduced a staking feature that enables users to temporarily lock funds to secure a cryptocurrency's network and earn rewards. The staking process is simple and easy to use, and currently supports six cryptocurrencies: Ethereum, Solana, Polkadot, Cardano, Tezos, and Polygon. The rewards for staking vary depending on the amount of crypto staked and the chosen cryptocurrency, with APYs ranging from 2.09% to 12.30%. However, some cryptocurrencies have lock-up periods before users can access their balances. Revolut users can stake Ethereum and receive their rewards daily after a waiting period of approximately 2 days, but must wait 10 days to access their balance once unstaked. Staking Solana on Revolut offers an APY of 5.25%, with rewards paid every 3 days after an initial waiting period of 3 days. Staking Polygon on Revolut offers an APY of up to 3.74%, with rewards paid daily after a 1-day warm-up period. Revolut staking is available in select countries within the EEA, with fees ranging from 15% to 35% depending on the token and the amount staked.

  • Ethereum Struggles with Institutional Adoption, Losing Ground to Bitcoin

    Ethereum's eight-year support trend against Bitcoin has been broken, causing concern for its future. Tuur Demeester, founder of Adamant Capital, has described Ethereum as "dying a slow death" due to this development. The slow adoption by institutions is being blamed for Ethereum's setback, while Bitcoin continues to dominate. This could have implications for Ethereum's position as an asset class. Despite this, Bitcoin's price remains stable, while altcoins show mixed performance. The disparity between Bitcoin and Ethereum's adoption among institutional investors is due to Bitcoin's simpler use case and fixed supply, as well as its higher trading volumes in ETFs compared to Ethereum. Ethereum's scalability challenges and regulatory scrutiny, particularly regarding its transition to a proof-of-stake model, are also contributing factors. Institutional endorsement of Bitcoin ETFs has outpaced that of Ethereum, with major asset managers like Fidelity and Morgan Stanley adding Bitcoin ETFs to their offerings. Experts suggest that Ethereum needs to address scalability issues and redefine its role as a technology-driven platform to regain its competitive edge. Until then, institutional investment appears to favor Bitcoin.

  • Careers in Crypto: 5 Insights for 2024

    In an overwhelming job market, leaning into personal networks and connections are more important than ever. Emily Landon, CEO of The Crypto Recruiters, outlines what is happening in the crypto job market and how you can position yourself or your company in 2024.

  • Cointime August 10th News Express

    1. The U.S. Internal Revenue Service has released a new draft of the crypto tax form, which no longer requires filling in wallet addresses and transaction IDs

  • Adidas and Doodles collaborate to launch a limited edition NFT collection pack

    Sportswear giant Adidas is collaborating with Ethereum NFT series Doodles to sell virtual gift packages that support buyers in purchasing exclusive physical clothing. Adidas and Doodles stated in a joint statement that these limited edition collectible packages will be available for purchase before August 16th, with two items in each package. The Adidas Originals x Doodles online store shows that the retail price for a single package is $4.99, while the price for 2 to 100 packages ranges from $8.49 to $374.99.Some joint sets include physical collectibles featuring Deysi, the digital mascot in Pharrell Williams and Coi Leray's new song "Not in the Store". These collectibles include Deysi sportswear and Superstar shoes, with each limited to 200 pieces.