ar.io Logoar.io Documentation

Getting Started with Turbo

Upload data to Arweave using Turbo, a managed gateway service designed for reliability, scale, and ease of use. Turbo handles the infrastructure so you can focus on shipping.

What is Turbo?

Turbo is a managed ar.io gateway service that simplifies uploading data to Arweave. It abstracts away funding, performance tuning, and operational complexity, giving teams a fast, dependable path to permanent storage.

Turbo supports flexible payment options, including fiat and major cryptocurrencies, and is built to handle high-throughput workloads with consistent performance. Whether you’re prototyping or running production systems, Turbo provides a reliable upload layer backed by enterprise-grade infrastructure.

If you’re looking for a managed gateway service tailored to your use case — including custom limits, performance, or integration support — book a call to learn how we can get one set up for you: Contact Us!

Get Started

Install the SDK

npm install @ardrive/turbo-sdk

Set Up Your Wallet

Create a new wallet or use an existing one:

# Create a new wallet (easy way)
npx permaweb/wallet > key.json

Then load it in your code:

import { TurboFactory, ArweaveSigner } from "@ardrive/turbo-sdk";
import fs from "fs";

// Load your wallet
const jwk = JSON.parse(fs.readFileSync("./key.json", "utf-8"));
const signer = new ArweaveSigner(jwk);

// Initialize Turbo
const turbo = TurboFactory.authenticated({ signer });

Get Turbo Credits

Purchase Turbo Credits to pay for uploads. When you upload, credits are automatically used and Turbo handles the payment to Arweave.

Option 1: Via the Web Interface

  • Go to turbo-topup.com
  • Pay with fiat currencies (credit cards) or crypto tokens (ARIO, USDC, SOL, MATIC, AR)

Option 2: Via the SDK

// Purchase credits programmatically
const fundResult = await turbo.topUpWithTokens({
  tokenAmount: TOKEN_AMOUNT,
  tokenType: "solana", // or 'ethereum', 'matic', 'arweave'
});

Check Your Balance

const balance = await turbo.getBalance();
console.log(`Balance: ${balance.winc} Winston Credits`);

Upload Your Data

const fileData = fs.readFileSync("./myfile.jpg");

const result = await turbo.upload({
  data: fileData,
  dataItemOpts: {
    tags: [
      { name: "Content-Type", value: "image/jpeg" },
      { name: "Title", value: "My Image" },
    ],
  },
});

console.log("Upload ID:", result.id);
console.log("Owner:", result.owner);

Advanced Features

Turbo Credits System

Learn about our flexible payment system that supports multiple currencies and payment methods.

Understanding Turbo Credits

Data Organization

  • Tagging - Organize your data with metadata
  • Manifests - Create folder structures and bundles
  • Encryption - Secure your sensitive data
  • ArFS - File system protocol for structured storage

Production Ready

Turbo implements the ANS-104 bundling specification, providing enterprise-grade infrastructure for permanent data storage.

Perfect for: Developers, production applications, high-volume uploads, and any project needing reliable permanent storage with flexible payment options.

FeatureTurbo BundlingAlternative Options
Payment OptionsFiat, ARIO, USDC, SOL, MATIC, ARAR tokens only
ImplementationSimple SDK integrationManual transaction handling
PerformanceOptimized bundling & retry logicDepends on implementation
ReliabilityBuilt-in redundancyManual error handling
CostOptimized for large uploadsHigher per-transaction costs
Setup ComplexityEasy with SDKComplex protocol knowledge

Need help deciding? Most developers should use Turbo for its simplicity and payment flexibility. Only consider alternatives for specialized use cases requiring maximum control.

Ready to Get Started?

How is this guide?