connect()Connect & read
Request access, then read the active address, public key and confirmed balance.
const { accounts } =
await dogesoft.connect();
const balance =
await dogesoft.getBalance();
Doge Soft for builders
One injected provider connects your experience to accounts, signatures, DOGE, DRC-20 Coins, Doginals and custom PSBTs. No private keys. No mystery middleware. Just a clean path to Layer 1.
Three calls to hello
Feature-detect the provider, ask the user to connect, then react when their account changes. That is the whole front door.
if (!window.dogesoft) {
throw new Error("Doge Soft Wallet not found");
}
console.log("ready:", window.dogesoft.version);
One connection, a wider orbit
Pair the provider with Doge Soft’s live products and data surfaces to build experiences that can inspect, act and verify without leaving the stack.
Explore the full stack ↗Provider toolkit
Use friendly helper methods or the generic request() interface. Every
signing action remains visible to the user.
connect()Request access, then read the active address, public key and confirmed balance.
const { accounts } =
await dogesoft.connect();
const balance =
await dogesoft.getBalance();
signMessage()Authenticate with a wallet signature—without collecting a secret or moving a coin.
const signature =
await dogesoft.signMessage(
"Sign in to My App"
);
sendDoge()Let the wallet handle fee rate, UTXO selection, user approval and broadcast.
await dogesoft.sendDoge({
to: "D8p...recipient",
amount: 4.2
});
sendDrc20()Send a tick through the same flow users already know from inside the wallet.
await dogesoft.sendDrc20({
tick: "WOOF",
amount: "1000",
to: "D8p...recipient"
});
signPsbt()Build swaps, marketplace listings and multi-input transactions with explicit approval.
const { psbtHex } =
await dogesoft.signPsbt(unsigned);
await dogesoft.pushPsbt(psbtHex);
on()React when the user switches accounts or disconnects without refreshing your app.
dogesoft.on(
"accountsChanged",
(accounts) => sync(accounts[0])
);
Prefer one doorway?
request().The provider supports an EIP-1193-flavored request shape, making it easy to slot into an existing wallet adapter.
doge_requestAccounts
doge_signMessage
doge_sendDoge
doge_sendDrc20
const accounts =
await window.dogesoft.request({
method: "doge_requestAccounts"
});
Ready when you are
The provider shape is locked while the browser extension finishes testing. Explorer, indexer and DRC-20 Coins data are already live in the docs.