arx is a sdk/cli that anyone can use to upload permanent data to Arweave.
arx is a drop-in replacement for prior bundle service sdk's, most developers will only have to change two lines:
import ARx from '@permaweb/arx'
const arx = new ARx(...)
npm i -g @permaweb/arx
By default, the arx
cli points to the turbo bundle service from ardrive (https://turbo.ardrive.io), the turbo bundle service allows you to purchase non-refundable "upload credits" called "turbo credits" to use to upload your data to the Arweave Storage Network. Currently, turbo bundle service supports AR, SOL, ETH, and POL as funding sources. You can also purchase "turbo credits" using Fiat at https://turbo-topup.com/.
Token Symbol | Token Option Name |
---|---|
AR | arweave |
ETH | ethereum |
POL | matic |
SOL | solana |
Purchase credits with AR
arx fund ${TOKEN_QUANTITY} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY}
arx balance ${PUBLIC_ADDRESS} -t ${TOKEN}
arx upload ${FILENAME} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY}
arx upload-dir ${DIRNAME} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY} --index-file index.html
arx price ${BYTES}
By default, the arx
sdk points to the turbo bundle service from ardrive (https://turbo.ardrive.io), the turbo bundle service allows you to purchase non-refundable "upload credits" called "turbo credits" to use to upload your data to the Arweave Storage Network. Currently, turbo bundle service supports AR, SOL, ETH, and POL as funding sources. You can also purchase "turbo credits" using Fiat at https://turbo-topup.com/.
import fs from 'node:fs'
import ARx from '@permaweb/arx'
const arx = async () =>
new ARx({
url: 'https://turbo.ardrive.io',
token: 'arweave',
key: JSON.parse(fs.readFileSync("wallet.json", "utf-8"))
})
async function main() {
console.log(
await arx().fund(10 ** 12)
)
}
main()
async function main() {
console.log(
await arx().getBalance("XoyCWBAygZ1MBTCkgGKf22627txBjsLu0m2FtGwQi0k")
)
}
main()
async function main() {
console.log(
await arx().upload("myfile.bin", { tags: ... })
)
}
main()
async function main() {
console.log(
await arx().uploadFolder("./dist")
)
}
main()
async function main() {
console.log(
await arx().getPrice(1024 * 1024)
)
}
main()
npm install
npm run prod:build
If you run into any usage issues or found a bug, please create an issue at: