DOGE Connecting

Docs / Apps / Launch for builders

dogesoft.js + wallet.js

Launch for builders

Two drop-in scripts so an AI can build a mint page or a locked members area from a collection slug.

Beta

Two scripts. No SDK install. Point an AI at this page plus your collection slug and it can build a mint page or a locked members area without inventing a second wallet.

index.html
<script src="https://launch.dogesoft.io/js/dogesoft.js"></script>
<script src="https://launch.dogesoft.io/js/wallet.js"></script>
ℹ️

Hosted copies are the source of truth. You can also vendor launch/public/js/dogesoft.js and wallet.js from the repo if you need them offline. They talk to /api on the same origin by default; set window.DOGESOFT_LAUNCH_API = "https://launch.dogesoft.io/api" before loading wallet.js when you embed from another site.

Prompt: “here's my collection, create a minting page”

Give the model the slug (and these docs). The page only needs a button that calls DogeSoftLaunch.mint(slug). That helper connects, claims the next index, pays the creator if the collection is priced, and queues a LAUNCHPAD_MINT inscription to the connected wallet.

mint-page.js
window.DOGESOFT_LAUNCH_API = "https://launch.dogesoft.io/api";

const slug = "bored-doge-club"; // your collection

document.getElementById("mint").onclick = async () => {
  const result = await DogeSoftLaunch.mint(slug);
  console.log("reserved", result.tokenIndex, result.payload);
  // poll DogeSoftLaunch.mintStatus(slug, result.tokenIndex) until status === "minted"
};

Prompt: “here's my collection, create a locked members area”

Same slug. After connect, requireMember throws NOT_MEMBER unless that wallet holds a mint (Launch DB or indexer UTXOs).

members.js
window.DOGESOFT_LAUNCH_API = "https://launch.dogesoft.io/api";

try {
  const gate = await DogeSoftLaunch.requireMember("bored-doge-club");
  showMembers(gate);
} catch (err) {
  if (err.code === "NOT_MEMBER") showPaywall();
  else console.error(err);
}

What not to generate

  • Do not call window.dogesoft.inscribe() — it is not a method.
  • Do not tag inscriptions with a private "launchpad": "dogepad" field. Use p: "dogesoft" and LAUNCHPAD_MINT.
  • Do not treat a self-reported txid as membership. Use requireMember / the membership endpoint, which reads Explorer.
  • On mobile, sendDoge for a mint price must pass protocol: "dogesoft-launch-mint" — the helper already does.

Full catalog API: Launch overview. Wallet connect: Quickstart.