ArNS
Arweave Name System (ArNS) registration and management
Get price for ArNS name registration or operation
Returns the mARIO (AR.IO token) and Winston credit cost for an ArNS name operation.
Optionally includes a fiat currency estimate if the currency query parameter is provided.
Supported Intents:
- buy-record: Purchase a new ArNS name
- upgrade-name: Upgrade a lease to permabuy
- extend-lease: Extend the lease duration
- increase-undername-limit: Increase the number of permitted undernames
Path Parameters
Intent for ArNS name operation
"buy-record" | "upgrade-name" | "extend-lease" | "increase-undername-limit"The ArNS name (without .ar suffix)
Query Parameters
If provided, includes a fiat currency estimate in the response
Number of years for lease (required for buy-record and extend-lease)
Type of name registration (required for buy-record)
"lease" | "permabuy"Quantity to increase (required for increase-undername-limit)
AR.IO process ID (optional)
Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The nonce value concatenated with the request's data when deriving the provided the signature
The "modulus" of the JWK used to create the signature header
Response Body
curl -X GET "https://turbo.ardrive.io/v1/arns/price/buy-record/myname?currency=usd&years=1&type=lease&increaseQty=0&processId=string" \ -H "x-signature: string" \ -H "x-nonce: string" \ -H "x-public-key: string"{
"mARIO": "1000000",
"winc": "5000000000",
"fiatEstimate": {
"paymentAmount": 0,
"quotedPaymentAmount": 0,
"excessWincAmount": "string",
"adjustments": [
{
"name": "Adjustment",
"description": "Some great subsidy",
"operatorMagnitude": "0.6",
"operator": "multiply",
"adjustmentAmount": "-12300",
"promoCode": "SOME-GREAT-CODE"
}
],
"fees": [
{
"name": "Adjustment",
"description": "Some great subsidy",
"operatorMagnitude": "0.6",
"operator": "multiply",
"adjustmentAmount": "-12300",
"promoCode": "SOME-GREAT-CODE"
}
]
}
}"Invalid ArNS name""Price Oracle Unavailable"Initiate ArNS name purchase using account balance
Initiates an ArNS name purchase transaction using the user's Winston credit balance.
This deducts credits from the user's account and submits the transaction to the AR.IO network.
Requirements:
- User must have sufficient balance to cover the mARIO cost
- Name must be available (checked by AR.IO network)
- All required parameters must be provided based on the intent
Path Parameters
Intent for ArNS name operation
"buy-record" | "upgrade-name" | "extend-lease" | "increase-undername-limit"The ArNS name (without .ar suffix)
Query Parameters
Arweave address that will own the name
Number of years (required for lease purchases)
Name type (required for buy-record)
"lease" | "permabuy"Increase quantity (required for increase-undername-limit)
AR.IO process ID
Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The nonce value concatenated with the request's data when deriving the provided the signature
The "modulus" of the JWK used to create the signature header
Response Body
curl -X POST "https://turbo.ardrive.io/v1/arns/purchase/buy-record/string?owner=string&years=0&type=lease&increaseQty=0&processId=string" \ -H "x-signature: string" \ -H "x-nonce: string" \ -H "x-public-key: string"{
"purchaseReceipt": {
"nonce": "550e8400-e29b-41d4-a716-446655440000",
"name": "myname",
"intent": "buy-record",
"mARIOQty": "1000000",
"wincQty": "5000000000",
"owner": "abcdefghijklmnopqrxtuvwxyz123456789ABCDEFGH",
"processId": "process123",
"increaseQty": 0,
"type": "lease",
"years": 1,
"messageId": "msg123",
"status": "PENDING",
"usdArRate": 5.42,
"usdArioRate": 0.012
},
"arioWriteResult": {
"id": "msg123"
}
}"Invalid parameters""Invalid signature""Insufficient balance""AR.IO network unavailable"Get ArNS purchase status
Retrieves the status of an ArNS purchase transaction by its nonce (unique ID).
Use this endpoint to track the progress of a purchase initiated via POST /arns/purchase.
Path Parameters
The unique nonce returned when the purchase was initiated
uuidResponse Body
curl -X GET "https://turbo.ardrive.io/v1/arns/purchase/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"nonce": "550e8400-e29b-41d4-a716-446655440000",
"name": "myname",
"intent": "buy-record",
"mARIOQty": "1000000",
"wincQty": "5000000000",
"owner": "abcdefghijklmnopqrxtuvwxyz123456789ABCDEFGH",
"processId": "process123",
"increaseQty": 0,
"type": "lease",
"years": 1,
"messageId": "msg123",
"status": "PENDING",
"usdArRate": 5.42,
"usdArioRate": 0.012
}"Purchase status not found""Database unavailable"Get Stripe payment quote for ArNS name purchase
Creates a Stripe payment session (checkout or payment intent) for purchasing an ArNS name with fiat currency.
This endpoint:
- Calculates the mARIO and Winston credit cost
- Converts to the requested fiat currency
- Creates a Stripe payment session
- Stores a quote in the database
- Returns both the quote and payment session
Payment Methods:
- checkout-session: Full Stripe Checkout experience (redirects to Stripe)
- payment-intent: Embedded payment flow (integrate in your UI)
Path Parameters
Stripe payment method type
"checkout-session" | "payment-intent"Destination Arweave address
Currency type for a given payment amount
Intent for ArNS name operation
"buy-record" | "upgrade-name" | "extend-lease" | "increase-undername-limit"The ArNS name (without .ar suffix)
Query Parameters
Comma-separated list of promo codes
Which UI Mode to create the checkout session in
"hosted"The URL to return to after a successful payment
"https://app.example.com"The URL to return to after a successful payment
"https://app.example.com"The URL to return to after a canceled payment
"https://app.example.com"Type of ArNS name
"lease" | "permabuy"Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The nonce value concatenated with the request's data when deriving the provided the signature
The "modulus" of the JWK used to create the signature header
Response Body
curl -X GET "https://turbo.ardrive.io/v1/arns/quote/checkout-session/string/usd/buy-record/string?promoCode=string&uiMode=embedded&returnUrl=https%3A%2F%2Fapp.example.com&successUrl=https%3A%2F%2Fapp.example.com&cancelUrl=https%3A%2F%2Fapp.example.com&years=0&type=lease&increaseQty=0&processId=string" \ -H "x-signature: string" \ -H "x-nonce: string" \ -H "x-public-key: string"{
"purchaseQuote": {
"nonce": "f25f24f2-d581-4594-9824-123d5821fb65",
"name": "string",
"intent": "buy-record",
"mARIOQty": "string",
"wincQty": "string",
"paymentAmount": 0,
"quotedPaymentAmount": 0,
"currencyType": "usd",
"quoteExpirationDate": "2019-08-24T14:15:22Z",
"paymentProvider": "stripe",
"excessWincAmount": "string",
"adjustments": [
{
"name": "Adjustment",
"description": "Some great subsidy",
"operatorMagnitude": "0.6",
"operator": "multiply",
"adjustmentAmount": "-12300",
"promoCode": "SOME-GREAT-CODE"
}
]
},
"paymentSession": {
"id": "cs_test_a1lFM2vIpifSqH8VtIjnbSGnr0RAQtEx6R2OMbhvbeK7fradNG7357Roxy",
"client_secret": "cs_test_a1lFM2vIpifSqH8VtIjnbSGnr0RAQtEx6R2OMbhvbeK7fradNG7357Roxy#fidkdWxOYHwnPyd1blpxYHZxWjA0T1BEcXJGPWR1VUpSbkFJbTdDVV9uVG5sTl9AblFqM3J0YklGcVRqRmlJM1YxaTdvaWdnZjBIYkphckpQYVA8UWs8NktLc3REQmdwNDQwaW5PRm1IbG5CNTVdUGNRaGo3fycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl",
"url": "https://checkout.stripe.com/c/pay/cs_test_a1lFM2vIpifSqH8VtIjnbSGnr0RAQtEx6R2OMbhvbeK7fradNG7357Roxy#fidkdWxOYHwnPyd1blpxYHZxWjA0T1BEcXJGPWR1VUpSbkFJbTdDVV9uVG5sTl9AblFqM3J0YklGcVRqRmlJM1YxaTdvaWdnZjBIYkphckpQYVA8UWs8NktLc3REQmdwNDQwaW5PRm1IbG5CNTVdUGNRaGo3fycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"
},
"adjustments": [
{
"name": "Adjustment",
"description": "Some great subsidy",
"operatorMagnitude": "0.6",
"operator": "multiply",
"adjustmentAmount": "-12300",
"promoCode": "SOME-GREAT-CODE"
}
],
"fees": [
{
"name": "Adjustment",
"description": "Some great subsidy",
"operatorMagnitude": "0.6",
"operator": "multiply",
"adjustmentAmount": "-12300",
"promoCode": "SOME-GREAT-CODE"
}
]
}"Invalid parameters""Stripe unavailable"Transfer a custodied ArNS ANT out of Turbo custody
Self-custody exit: a credit-authenticated owner moves a Turbo-custodied ANT to a Solana pubkey they designate. Turbo (the on-chain owner) signs the transfer.
Authorization: action-bound, single-use signature over
("arns", "transfer", antId, target) + nonce. Requires x-signature,
x-public-key and x-nonce headers.
Path Parameters
The ANT (Arweave Name Token) process id held in Turbo custody.
Query Parameters
The Solana address to receive on-chain ownership of the ANT.
Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The "modulus" of the JWK used to create the signature header
The nonce value concatenated with the request's data when deriving the provided the signature
ANS-104 signature type of the signer (defaults to 1, Arweave).
Response Body
curl -X POST "https://turbo.ardrive.io/v1/arns/transfer/string?target=string" \ -H "x-signature: string" \ -H "x-public-key: string" \ -H "x-nonce: string" \ -H "x-signature-type: 1"{
"antId": "string",
"target": "string",
"owner": "string",
"name": "string",
"messageId": "string",
"confirmed": true
}"Missing or invalid target: must be a Solana address""Invalid or unbound signature for this action""ANT not found in your Turbo custody""Internal server error"Set a resolution record on a custodied ArNS ANT
Turbo (the on-chain owner) writes a resolution record on the
credit-authenticated user's behalf. undername defaults to "@" (the base
name record).
Authorization: action-bound, single-use signature over
("arns", "set-record", antId, undername, transactionId, ttlSeconds) +
nonce. Requires x-signature, x-public-key and x-nonce headers.
Path Parameters
The ANT process id held in Turbo custody.
Query Parameters
The record undername. "@" (the base record) or up to 61 chars of [a-zA-Z0-9_-]. Defaults to "@".
The Arweave transaction id the record should resolve to.
Record TTL in seconds. Bounded by ARNS_MIN_TTL_SECONDS (default 60) and ARNS_MAX_TTL_SECONDS (default 86400).
Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The "modulus" of the JWK used to create the signature header
The nonce value concatenated with the request's data when deriving the provided the signature
ANS-104 signature type of the signer (defaults to 1, Arweave).
Response Body
curl -X POST "https://turbo.ardrive.io/v1/arns/manage/string/set-record?undername=%40&transactionId=QpmY8mZmFEC8RxNsgbxSV6e36OF6quIYaPRKzvUco0o&ttlSeconds=3600" \ -H "x-signature: string" \ -H "x-public-key: string" \ -H "x-nonce: string" \ -H "x-signature-type: 1"{
"antId": "string",
"undername": "string",
"transactionId": "string",
"ttlSeconds": 0,
"messageId": "string"
}"Invalid transactionId: must be an Arweave transaction id""Invalid or unbound signature for this action""ANT not found in your Turbo custody""Internal server error"Remove a resolution record (undername) from a custodied ArNS ANT
Turbo (the on-chain owner) removes a resolution record on the credit-authenticated user's behalf.
Authorization: action-bound, single-use signature over
("arns", "remove-record", antId, undername) + nonce. Requires
x-signature, x-public-key and x-nonce headers.
Path Parameters
The ANT process id held in Turbo custody.
Query Parameters
The record undername to remove. "@" (base record) or up to 61 chars of [a-zA-Z0-9_-].
Header Parameters
The signature value derived from signing the request's data concatenated with the provided nonce using the private key from the provided public key
The "modulus" of the JWK used to create the signature header
The nonce value concatenated with the request's data when deriving the provided the signature
ANS-104 signature type of the signer (defaults to 1, Arweave).
Response Body
curl -X POST "https://turbo.ardrive.io/v1/arns/manage/string/remove-record?undername=blog" \ -H "x-signature: string" \ -H "x-public-key: string" \ -H "x-nonce: string" \ -H "x-signature-type: 1"{
"antId": "string",
"undername": "string",
"messageId": "string"
}"Missing or invalid required parameter: undername""Invalid or unbound signature for this action""ANT not found in your Turbo custody""Internal server error"How is this guide?