1.0.0 • Published 10 months ago
@permaweb/arx v1.0.0
arx
arx is a sdk/cli that anyone can use to upload permanent data to Arweave.
Drop-In Replacement
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(...)
Quick Start
Install
npm i -g @permaweb/arx
CLI
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 names
Token Symbol | Token Option Name |
---|---|
AR | arweave |
ETH | ethereum |
POL | matic |
SOL | solana |
Get Upload Credits
Purchase credits with AR
arx fund ${TOKEN_QUANTITY} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY}
Check Credit Balance
arx balance ${PUBLIC_ADDRESS} -t ${TOKEN}
Upload single file
arx upload ${FILENAME} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY}
Upload Directory
arx upload-dir ${DIRNAME} -t ${TOKEN} -w ${KEYFILE or PRIVATE_KEY} --index-file index.html
Get Credits by Bytes
arx price ${BYTES}
SDK
Setup
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")) })
Purchase Credits
async function main() {
console.log(
await arx().fund(10 ** 12)
)
}
main()
Check Credit Balance
async function main() {
console.log(
await arx().getBalance("XoyCWBAygZ1MBTCkgGKf22627txBjsLu0m2FtGwQi0k")
)
}
main()
Upload File
async function main() {
console.log(
await arx().upload("myfile.bin", { tags: ... })
)
}
main()
Upload Directory
async function main() {
console.log(
await arx().uploadFolder("./dist")
)
}
main()
Get Price
async function main() {
console.log(
await arx().getPrice(1024 * 1024)
)
}
main()
Development
npm install
npm run prod:build
Support
If you run into any usage issues or found a bug, please create an issue at:
Github - https://github.com/permaweb/arx
Resources
1.0.0
10 months ago