@subdom/sdk
v0.2.0
Published
TypeScript client for the subdom builder-api - deploy Proxy/SBT zones, mint subdomains, start auctions, fetch metadata.
Readme
@subdom/sdk
TypeScript client for the subdom builder-api — deploy
Proxy/SBT zones, mint subdomains, start auctions, and fetch NFT metadata for
TON DNS .ton subdomains. Generated from the public builder-api OpenAPI
spec (platform-internal/admin endpoints excluded — see the repo root
README); every method returns a TransactionResponse
({ validUntil, messages }) ready to hand straight to TonConnect.
Install
yarn add @subdom/sdk(or npm install @subdom/sdk)
Quick start
import { SubdomClient } from "@subdom/sdk";
const client = new SubdomClient({ BASE: "https://api.subdom.zone" });
// Deploy a Proxy zone on your own domain — one call, platform owner/royalty
// values are enforced server-side, you only provide the domain and your wallet.
const tx = await client.mainOperations.deployProxyZone(
"EQ...", // dnsItemAddress — your .ton domain's DNS item address
"minter", // dnsItemName — the domain label, without ".ton"
"UQ...", // userWalletAddress — your wallet
);
// tx.messages -> send via @tonconnect/ui-react's tonConnectUI.sendTransaction({
// validUntil: tx.validUntil,
// messages: tx.messages,
// })Minting a subdomain and starting an auction follow the same pattern:
const mintTx = await client.mainOperations.mintSbtSubdomain(
collectionAddress, // address of an SBT-mode Subdomain Collection
"sub", // subdomain label
);
const auctionTx = await client.mainOperations.startAuction(
collectionAddress, // address of a Proxy-mode Subdomain Collection
"sub",
);What's included
client.mainOperations—deployProxyZone/deploySbtZone(one-call zone deploy),mintSbtSubdomain,startAuction,claimSubdomain. These are the only 5 write operations exposed — every platform-owned parameter (owner/royalty/wrapper collection address/prices) is filled in server-side, you only ever pass the domain and your own wallet address.client.proxyCollectionsAndItems/client.sbtCollectionsAndItems/client.wrapperCollectionAndItems/client.inactiveSubdomainMetadata—get*Metadata/get*Imageread-only helpers for NFT rendering.client.default— misc (health check).
Every request returns a CancelablePromise<T> (cancel with promise.cancel()
if the caller unmounts before it resolves) and throws ApiError on non-2xx
responses.
Advanced config
const client = new SubdomClient({
BASE: "https://api.subdom.zone",
HEADERS: { "X-My-Header": "value" },
});See OpenAPIConfig for the full list of options
(base URL, headers, credentials, custom HttpRequest implementation).
Regenerating
This client is generated, not hand-written — see
scripts/regenerate.sh in the repo root. Don't
edit files under src/ directly; they'll be overwritten on the next
regeneration from openapi.json.
