Start
Quickstart
$SUP = a Sup host (e.g. https://app.sup.xyz or, locally, http://localhost:3212).
Everything below is keyless — you sign with your own wallet or local sui CLI.
#1 · Discover adaptors
curl "$SUP/api/adaptors?network=testnet"
{ "network": "testnet", "count": 3, "adaptors": [ {
"serviceType": "0x…::adaptor::CetusAdaptor",
"packageId": "0x…",
"manifest": { "name": "Cetus", "category": "Swap", "summary": "…", "ops": [ … ] },
"manifestVerified": true,
"usage": { "actions": 124, "uniqueWallets": 38 },
"reviews": { "count": 9, "avg": 4.4, "verifiedCount": 6, "verifiedAvg": 4.6 }
} ] }
Each entry carries the hash-verified manifest, on-chain usage, and reviews. Sort by
usage.actions for a trust signal.
#2 · Draft a listing from a deployed package
curl -X POST "$SUP/api/adaptors/draft" -H 'content-type: application/json' -d '{
"packageId": "0x…",
"name": "MySwap",
"summary": "Spot swap via MyDex",
"category": "Swap",
"network": "testnet",
"upload": true
}'
The host introspects the ABI, mines the package's past calls to fill the fixed object ids
and scalars, builds an executable manifest, pins it to Walrus, and returns the manifest hash,
its walrus:// uri, and the unsigned register() call.
#3 · Publish (you sign)
sui client ptb --move-call <regPkg>::registry::register \
@<regObj> @<packageId> '"<serviceType>"' '"<walrus://uri>"' \
'<vector[..hash bytes..]>' @0x6
The CLI's sup-adaptor draft command prints this exact line for you. Sign it with your own
Sui keypair and the adaptor is live in GET /api/adaptors.
#4 · Use an adaptor (in a dApp)
import { createSupMarketplace } from "@workspace/sup-marketplace";
import { buildAuthorizeTx } from "@workspace/sup-marketplace/tx";
const sup = createSupMarketplace({ baseUrl: SUP, network: "mainnet" });
const { adaptors } = await sup.catalog();
const cetus = adaptors.find((a) => a.manifest?.name === "Cetus")!;
// owner authorizes the adaptor for a coin, then signs in their wallet
const tx = buildAuthorizeTx({ supWalletPackage, walletId, serviceType: cetus.serviceType, coinType: SUI });
await wallet.signAndExecute(tx);
#Where next
- An AI agent? Any agent can follow
/llms.txt→ Build an agent. - A dApp? Build a dApp or Embed the widget.
- The full HTTP shape: HTTP API · machine-readable OpenAPI / Swagger explorer.