# CLI

The ArDrive Command Line Interface (CLI) is a Node.js application for terminal-based ArDrive (opens new window) workflows. It also offers utility operations for securely interacting with Arweave wallets and inspecting various Arweave (opens new window) blockchain conditions.

Create your first drive and permanently store your first file on the permaweb with a series of simple CLI commands like so:

ardrive create-drive --wallet-file /path/to/my/wallet.json --drive-name "Teenage Love Poetry"
{
    "created": [
        {
            "type": "drive",
            "metadataTxId": "giv2R8Xj0bbe6l5taBTQJk_38zwIrMH_g1-knSCisjU",
            "entityId": "898687ea-b678-4f86-b4e7-49560b190356",
            "bundledIn": "Vj2x4IBEAezBvhj5RgtA247W_q3S10suI6l0E30GPoE",
            "entityName": "Teenage Love Poetry"
        },
        {
            "type": "folder",
            "metadataTxId": "VljnttwUxRStnVuPYakF9e2whjhYJVWB0nSxD5dVyJ8",
            "entityId": "f0c58c11-430c-4383-8e54-4d864cc7e927",
            "bundledIn": "Vj2x4IBEAezBvhj5RgtA247W_q3S10suI6l0E30GPoE",
            "entityName": "Teenage Love Poetry"
        },
        {
            "type": "bundle",
            "bundleTxId": "Vj2x4IBEAezBvhj5RgtA247W_q3S10suI6l0E30GPoE"
        }
    ],
    "tips": [],
    "fees": {
        "Vj2x4IBEAezBvhj5RgtA247W_q3S10suI6l0E30GPoE": "44579472"
    }
}

ardrive upload-file --wallet-file /path/to/my/wallet.json --parent-folder-id "f0c58c11-430c-4383-8e54-4d864cc7e927" --local-path ./helloworld.txt --dest-file-name "ode_to_ardrive.txt"
{
    "created": [
        {
            "type": "file",
            "entityName": "ode_to_ardrive.txt",
            "entityId": "bd2ce978-6ede-4b0d-8f79-2d7bc235a0e0",
            "dataTxId": "tSMcfvAQu_tKLUkdvRRbqdX93oAf3h6c9eJsSj8mXL4",
            "metadataTxId": "EvE06MmE9IKeUzFMnxSgY1M5tJX4uHU64-n8Pf_lZfU",
            "bundledIn": "qjdHiQoWlSjCvhj5RgtA247W_q3S10suI6l0E30GPoE",
            "sourceUri": "file://Users/BestArDriver/Uploads/helloworld.txt"
        },
        {
            "type": "bundle",
            "bundleTxId": "qjdHiQoWlSjCvhj5RgtA247W_q3S10suI6l0E30GPoE"
        }
    ],
    "tips": [
        {
            "txId": "qjdHiQoWlSjCvhj5RgtA247W_q3S10suI6l0E30GPoE",
            "recipient": {
                "address": "i325n3L2UvgcavEM8UnFfY0OWBiyf2RrbNsLStPI73o"
            },
            "winston": "10000000"
        }
    ],
    "fees": {
        "qjdHiQoWlSjCvhj5RgtA247W_q3S10suI6l0E30GPoE": 44579472
    }
}

This project is in a state of active development. Use at your own risk!

# ArDrive

ArDrive (opens new window) is a permanent storage platform whose applications and core libraries (opens new window) offer hierarchical organization, privacy via complete end-to-end encryption, flexibility, extensibility, and access control over your most valuable data, all made possible by its innovative core technology, the Arweave File System (ArFS) Protocol (opens new window).

# ArFS

ArFS (opens new window) is a data modeling, storage, and retrieval protocol designed to emulate common file system operations and to provide aspects of mutability to your data hierarchy on Arweave (opens new window)'s otherwise permanent, immutable data storage blockweave.

# Data Portability

Data uploaded via the ArDrive CLI, once indexed by Arweave's Gateways and sufficiently seeded across enough nodes on the network, can be accessed via all other ArDrive applications including the ArDrive Web application (opens new window) at https://app.ardrive.io.

All transactions successfully executed by ArDrive can always be inspected in the Viewblock blockchain explorer (opens new window).

# Intended Audience

This tool is intended for use by:

  • ArDrive power users with advanced workflows and resource efficiency in mind: bulk uploaders, those with larger storage demand, game developers, nft creators, storage/db admins, etc.
  • Automation tools
  • Services
  • Terminal aficionados
  • Extant and aspiring cypherpunks

For deeper integrations with the ArDrive (opens new window) platform, consider using the ArDrive Core (opens new window) (Node) library's configurable and intuitive class interfaces directly within your application.