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 cli use turbo from ardrive, turbo allows you to purchase upload credits to use to provision your data on Arweave. Currently, turbo supports AR, SOL, ETH, and POL. You can also purchase credits using Fiat at app.ardrive.io.
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}
import fs from 'node:fs'
import ARx from '@permaweb/arx'
const arx = async () =>
new ARx({ 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: