DOGE Connecting

Docs / Wallet provider / Sending DOGE & DRC-20 Coins

window.dogesoft

Sending DOGE & DRC-20 Coins

Send DOGE and DRC-20 Coins directly from the injected provider, with the user approving every send.

Live

Both methods below open the wallet's own confirmation UI — your page never sees a private key, and the user always gets a chance to review amount, recipient and fee before anything broadcasts.

ℹ️

One surface, two hosts. As of provider 1.1.0, window.dogesoft exposes the same methods, argument styles, return shapes and events whether your dApp runs in the browser extension or inside the DogeSoft mobile app's browser. sendDoge(), sendDrc20() and sendInscription() all work on both — each opens the wallet's own confirmation UI, so approval is always the user's.

The protocol field on sendDoge() is optional everywhere now. Pass one of the recognized ecosystem strings (dogesoft-lp-add, dogesoft-shop-checkout, dogesoft-launch-mint) to get the dedicated checkout / deposit flow; omit it for a plain send.

Send DOGE

The wallet handles fee rate estimation, UTXO selection and change — you just describe the intent.

send-doge.js
const { txid } = await dogesoft.sendDoge({
  to: "D8p...recipient",
  amount: 4.2,       // DOGE, not koinu
  feeRate: undefined, // optional override, sat/vB-equivalent
  protocol: undefined // optional — an ecosystem string routes a dedicated flow
});

Send DRC-20 Coins

sendDrc20() drives the full commit → reveal → move pipeline described on the send pipeline page. The call resolves once the user has signed; the wallet's own pipeline worker takes care of broadcasting the move as soon as the reveal is indexed, even if your page has since closed. On the mobile app this opens the same in-app DRC-20 send flow the wallet UI uses; the call resolves when the user confirms.

send-drc20.js
await dogesoft.sendDrc20({
  tick: "WOOF",
  amount: "1000",
  to: "D8p...recipient"
});

Sending a single one-of-a-kind inscription (a Doginal) uses a separate call, sendInscription(), keyed by inscription ID rather than tick and amount. The wallet must currently hold that inscription for the call to resolve:

send-inscription.js
await dogesoft.sendInscription({
  inscriptionId: "a1b2...i0",
  to: "D8p...recipient"
});
ℹ️

Sending DRC-20 Coins to many recipients in one batch is currently a wallet-app-only feature — it isn't exposed on window.dogesoft for third-party integrations. See the batch send section for how it works and its current status.