Introduction
Welcome to the Chisel API! You can use this API to submit individual or bulk inscriptions, and monitor their status.
Inscriptions
Create Inscription
const data = new FormData();
data.append('fee_rate', 80);
data.append('split_revelations', true);
data.append('ordinal_receive_address', 'bc1qdr06k926axngldcpz48fe7vg72085muzxcsfzgp3eajnptnjlk5s5yz38y');
data.append('return_address', 'bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3');
// add plaintext file
const blob = new Blob(['Hello World'], {type: 'text/plain'});
data.append('inscriptions', blob, `inscription_0.txt`);
// submit inscription
await fetch('https://chisel.xyz/api/inscribe', {
method: 'POST',
body: data
});
The above command returns JSON structured like this:
{
"id": "b6a430e3-fa9b-48b6-81c4-28dfede1a5f0",
"destination": "bc1qdr06k926axngldcpz48fe7vg72085muzxcsfzgp3eajnptnjlk5s5yz38y",
"fee_rate": 80,
"status": "awaiting-funding",
"address": "bc1pfrf029j2wcgf3uq9sa9p79knveeq23gasruwa34rku6mzsuaxgzsyv5jx4",
"service_fee": 11669,
"amount": 66350,
"size": 720,
"expiration": 1703542167784
}
Create one or multiple new inscriptions.
HTTP Request
POST https://chisel.xyz/api/inscribe
Form Encoding
multipart/form-data
Request Body Parameters
Parameter | Type | Necessity | Description |
---|---|---|---|
inscriptions | File[] | Required | Files to be inscribed. |
fee_rate | Integer | Required | Fee rate in satoshis per virtual byte. |
ordinal_receive_address | String | Required | Address to send the inscriptions to. |
split_revelations | Boolean | Optional | Should each inscription have a separate revelation transaction? Strongly recommended to set to true ! |
inscribe_provided_own_ordinal | Boolean | Optional | Set to true to enable bringing own satoshi. |
parent_inscription_ids[] | String[] | Optional | Array of inscription ID strings that the new inscriptions will become children of. |
skip_mime_check | Boolean | Optional | Allow any mime type, including those not yet supported by ord. |
postage | Integer | Optional | Value of each inscription's revelation output. Default: 10000 . |
compress | brotli | gzip (String) |
Optional | Compress data using either Brotli (brotli ) or Gzip (gzip ). |
locktime | Integer | Optional | Add a locktime to the revelation transactions. May not be used in conjunction with grind_ambifix . |
grind_ambifix | String | Optional | Grind a 1-to-4-character-ambifix for the revelation transactions, making them either start or end with the ambifix. Must be hexadecimal. May not be used in conjunction with locktime . |
return_address | String | Optional | Address whereto refunds would be sent. If used in conjunction with parent inscription IDs, all parent inscriptions will be sent here. |
delegates | String[] | Optional | Array of inscription IDs to use as delegates. Cannot be used in conjunction with the inscriptions field. When used, no content or (by default) mime type* gets inscribed. |
mime_types | String[] | Optional | Array of MIME types to use with delegate inscriptions only. Length must match delegates. |
metaprotocols | String[] | Optional | Array of strings to use as the metaprotocol for each file. Length must match inscriptions. |
metadata | File[] | Optional | Array of JSON files to mark as metadata corresponding to each inscription. Length must match inscriptions. null indicates no metadata for the inscription at the given index. |
destination_address_overrides | String[] | Optional | Array of destination address overrides. Length must match inscriptions. Empty string indicates no destination override for the inscription at the given index. |
unbounds | Integer[] | Optional | Array of inscription indices that should be marked as unbound. |
Get Inscription Status
curl "https://chisel.xyz/api/inscription/b6a430e3-fa9b-48b6-81c4-28dfede1a5f0/status"
This endpoint returns JSON structured like this:
{
"id": "b6a430e3-fa9b-48b6-81c4-28dfede1a5f0",
"destination": "tb1pufcu7ap75f333lxk8juv3e8ad2cmxxwckvg66fd3vkkn50pspgpsphqn5q",
"fee_rate": 80,
"status": "awaiting-funding",
"funding_address": "tb1pc8ug6pv4s9he0me75zhu0w6m7hrx6lcca5wyypc6t9j523fsfxaqk0gssk",
"service_fee": 11669,
"amount": 66350,
"size": 720,
"expiration": 1703542167784
}
Obtain a specific inscription's status.
HTTP Request
GET https://chisel.xyz/api/inscription/<ID>/status
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the inscription whose status is to be retrieved. |
Response Body Values
Parameter | Type | Description |
---|---|---|
id | String | ID of the inscription. It can be accessed via https://chisel.xyz/order/<id> |
destination | String | Bitcoin address where the inscription(s) and, if applicable, parent(s) will be sent. |
fee_rate | Integer | The fee rate the Chisel-generated transactions will have. |
status | Enum | One of awaiting-funding , awaiting-ordinal , broadcasting , awaiting-confirmation , and confirmed . |
size | Integer | The aggregate byte size of all the inscriptions. |
funding_address | String | Funding address where bitcoin (amount satoshis) must be sent to fund the inscription. |
amount | Integer | Amount on satoshis of the necessary total fee to be sent to the funding address (address ) |
parent_receptacle_address | String | Applicable with parent/child. Address where the parent(s) must be sent. Only shown after the inscription is funded. |
ordinal_receptacle_address | String | Applicable with BYO. Address where the user's ordinal must be sent. Only shown after the inscription is funded and, if applicable, after all parents are received. |
parent_inscription_id | String | The id of the parent inscription that is currently expected to be sent next to ordinal_receptacle_address . When Chisel is expecting a BYO ordinal, this field will be absent. |
parent_inscription_ids | String[] | The id of all the parent inscriptions the children will have. |
received_ordinal_count | Integer | The total number of BYO ordinals and parents that have been registered as received so far. The parents fill up first, and the BYO ordinal comes last. |
expiration | Integer | Unix timestamp in milliseconds by which the funding must be received. Otherwise, the order will expire. |
Boost Inscription Fee Rate
const data = new URLSearchParams();
data.append('fee_rate', 80);
data.append('commit', false);
// submit inscription
await fetch('https://chisel.xyz/api/inscription/b6a430e3-fa9b-48b6-81c4-28dfede1a5f0/boost', {
method: 'POST',
body: data
});
This endpoint returns JSON structured like this:
{
"id": "b6a430e3-fa9b-48b6-81c4-28dfede1a5f0",
"destination": "tb1pufcu7ap75f333lxk8juv3e8ad2cmxxwckvg66fd3vkkn50pspgpsphqn5q",
"fee_rate": 80,
"status": "awaiting-funding",
"funding_address": "tb1pc8ug6pv4s9he0me75zhu0w6m7hrx6lcca5wyypc6t9j523fsfxaqk0gssk",
"service_fee": 11669,
"amount": 66350,
"size": 720,
"expiration": 1703542167784
}
Boost a specific inscription. This will return a new order with its own funding address and funding amount.
HTTP Request
POST https://chisel.xyz/api/inscription/<ID>/boost
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the inscription whose status is to be retrieved. |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
fee_rate | Integer | The fee rate to which the inscription(s) should be boosted. |
commit | Boolean | Should the request be submitted, or should only a price estimate be calculated? |