Create Rune Etch Order
Use this endpoint to create a Rune Etch order.
Quick Start
Create a new Runes etch order.
Default Response
POST /v1/runes-managed/etch/orders HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 428
{
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"premine": "text",
"isMintable": true,
"terms": {
"amount": "text",
"cap": "text",
"heightStart": "text",
"heightEnd": "text",
"offsetStart": "text",
"offsetEnd": "text"
},
"inscriptionDetails": {
"contentType": "text",
"contentBase64": "text"
},
"delegateInscriptionId": "text",
"destinationAddress": "text",
"refundAddress": "text",
"feeRate": 1,
"appServiceFee": 1,
"appServiceFeeAddress": "text",
"turbo": true
}Default Response
{
"orderId": "text",
"fundAddress": "text",
"fundAmount": 1
}Create Rune Etch Order - Request
You can specify the characteristics of the Runes Etch order you wish to execute, by passing a request body, with the below properties:
runeName
a string representing the name of the Rune to etch
divisibility
(ℹ️ optional)
a number representing the rune's divisibility, i.e. how finely it may be divided into its atomic units. Divisibility is expressed as the number of digits permissible after the decimal point in an amount of runes. The default value is 0.
symbol (ℹ️ optional)
a string representing the rune's currency symbol as a single . If a rune does not have a symbol, the generic currency sign ¤, also called a scarab, should be used
premine (ℹ️ optional)
a string representing rune premine: the amount of rune units which the etcher can optionally allocate to themselves.
isMintable
a boolean indicating if the rune may have an open mint, allowing anyone to create and allocate units of that rune for themselves.
terms (ℹ️ optional)
an object describing the terms governing minting if the rune is mintable, with the below properties:
amounta string representing the fixed amount of new units of the rune that each mint transaction createscapa string representing the number of times a rune may be minted.heightStartthe mint is open starting in the block with the given start height. ℹ️OptionalheightEndthe rune may not be minted in or after the block with the given end height. ℹ️OptionaloffsetStartthe mint is open starting in the block whose height is equal to the start offset plus the height of the block in which the rune was etched. ℹ️OptionaloffsetEndthe rune may not be minted in or after the block whose height is equal to the end offset plus the height of the block in which the rune was etched. ℹ️Optional
inscriptionDetails
(ℹ️ optional)
You can optionally use the Rune etching transactions to create an inscription:
- the etched Runes will be linked to the inscription, which marketplaces and apps can use as logo
- the inscription will be sent to the specified destinationAddress, along with the premined Runes
If you wish to use that option, pass an inscriptionDetails object with the below properties to specify the content to inscribe:
contentTypea string representing the content/mime type of the content being inscribed. Make sure you extract and pass the correct content type for the content you wish to inscribecontentBase64a string representing the content you wish to inscribe, encoded in Base64 format
delegateInscriptionId
(ℹ️ optional)
If you wish to use the Rune etching transactions to create an inscription, you can optionally nominate a delegate for your inscription, as an alternative to specifying its content with inscriptionDetail (see above)
You can instead choose to pass a delegateInscriptionId string representing the inscription ID of the delegate.
turbo
(ℹ️ optional)
a boolean marking the rune etching as opting into future rune protocol changes if set to true
According to the Runes specifications: These protocol changes may increase light client validation costs, or just be highly degenerate
ℹ️the default value is false
destinationAddress
The Bitcoin address to which the minted runes should be allocated. ⚠️ When minting Runes for your user, we recommend managing runes holdings on taproot/ordinal address.
feeRate
a number representing the desired fee rate to set for the Rune etch transactions, in sats per vbytes
appServiceFee (ℹ️ optional)
a number representing the sats value of the fee to charge your user for your service.
appServiceFeeAddress (ℹ️ optional)
a string representing the Bitcoin address which will receive the appServiceFee, if a fee is specified
refundAddress
The Bitcoin address to which the amount of the funding transaction should be returned, should the etch order fail. ⚠️ When etching Runes for your user, we recommend managing refunds on their Bitcoin payment address.
network (ℹ️ optional)
a string representing the Bitcoin network to use for the etch transactions: 'Mainnet' or 'Testnet'
Create Rune Etch Order - Response
A successful Create Etch Order request will:
Create a Runes Etch order for the Xverse API to process, identified by an
orderIdReturn a the below response object to your app:
orderId
a string representing the ID of the Rune Etch order created by the Xverse API
fundAddress
the BTC address which will collect the funds required to execute the Rune Etch order, and sign the required transactions to process the order.
fundAmount
the amount of sats to send to fundAddress the before you execute the Rune Etch order
Next Step -> Fund & Execute Etch Order
Once you've funded your Rune Etch order and sent the required fundAmount to the fundAddress , you can call the Execute Etch Order endpoint.
Last updated