Capabilities
curl --request GET \
--url https://inkypump.com/api/capabilitiesimport requests
url = "https://inkypump.com/api/capabilities"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inkypump.com/api/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inkypump.com/api/capabilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inkypump.com/api/capabilities"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inkypump.com/api/capabilities")
.asString();require 'uri'
require 'net/http'
url = URI("https://inkypump.com/api/capabilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"chainId": 123,
"releaseCommit": "<string>",
"capabilityRevision": 123,
"flags": {},
"activeCreationDeployment": {},
"tradeableDeployments": [
{}
]
}API Documentation
Capabilities
Discover the active creation deployment, historical trade deployments, feature flags, and runtime hashes.
GET
/
api
/
capabilities
Capabilities
curl --request GET \
--url https://inkypump.com/api/capabilitiesimport requests
url = "https://inkypump.com/api/capabilities"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inkypump.com/api/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inkypump.com/api/capabilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inkypump.com/api/capabilities"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inkypump.com/api/capabilities")
.asString();require 'uri'
require 'net/http'
url = URI("https://inkypump.com/api/capabilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"chainId": 123,
"releaseCommit": "<string>",
"capabilityRevision": 123,
"flags": {},
"activeCreationDeployment": {},
"tradeableDeployments": [
{}
]
}Call this before preparing a launch. The response is chain-specific and is not cached for public reuse.
Responses send
Query parameters
number
required
57073 for Ink or 4663 for Robinhood.Key response fields
number
Resolved chain ID.
string
Application commit that produced this capability registry.
number
Schema revision for the capability object.
object
Current read, create, trade, EOTI, and token-update switches.
object
Active native-quote deployment for new launches. Includes version, hook, ABI family, fee-withdrawal mode, runtime hash, V4 contracts, and start block.
array
Active and historical deployments needed to route existing tokens.
Request
curl "https://inkypump.com/api/capabilities?chainId=57073"
Safe use
const response = await fetch(
"https://inkypump.com/api/capabilities?chainId=57073",
{ cache: "no-store" },
)
if (!response.ok) throw new Error(`Capabilities failed: ${response.status}`)
const data = await response.json()
if (data.chainId !== 57073) throw new Error("Wrong response chain")
if (!data.flags?.create) throw new Error("Creation is disabled")
if (data.activeCreationDeployment?.status !== "active") {
throw new Error("No active creation deployment")
}
const hook = data.activeCreationDeployment.hook
activeCreationDeployment is for new native launches. Existing tokens use their own hook_address. xStocks hooks come from /api/xstocks/quote-assets, not this field.Cache-Control: private, no-store. Keep only a short-lived server cache if your application needs one.