Skip to main content

Dogecoin (DOGE)

UTXO-based signing, identical in shape to Bitcoin. Provide the previous transactions for the inputs you spend; the device signs each input by its keyPath. Dogecoin is legacy-only — addresses are base58 P2PKH (prefix D); there is no native SegWit on mainnet.

FieldValue
FamilyBitcoin (UTXO)
coinType3
keyPathm/44'/3'/<accountIdx>'/0/0
addressFormatlegacy (P2PKH)
chainIdbip122:1a91e3dace36e2be3bf030a65679fe82/slip44:3

Supported Methods

MethodSupported
getAddress
signTransaction
signMessage
signTypedData

Requirements

Minimum firmware for each method. The two models are on different version lines, so DCENT Biometric Wallet and DCENT X are listed separately (the numbers are not comparable across models). Below this the request returns the firmware-update error (5005) and the bridge prompts to update.

MethodDCENT Biometric WalletDCENT X
getAddress2.3.0 or higher1.0.0 or higher
signTransaction2.3.0 or higher1.0.0 or higher

addressFormat

FormatPathStatus
legacy (P2PKH, base58 D…)m/44'/3'/0'/0/0Supported
segwit-native (P2WPKH)Not on mainnet
info

Dogecoin uses the same input/output payload as Bitcoin — only the chainId, keyPath (coinType 3'), unit (koinu), and address format differ. Use txType: "p2pkh" for both inputs and outputs.

getAddress — account address

Retrieves the Dogecoin account address for a chainId + keyPath. Returns a base58 P2PKH address (prefix D). Call this before building a transaction.

FieldTypeRequiredSourceNotes
chainIdstringRequiredAppCAIP-19; fixed for Dogecoin
keyPathstringRequiredAppBIP-44, coinType 3'
addressFormatenumOptionalAppDogecoin supports legacy (P2PKH) only

Request

await dcent.getAddress({
chainId: 'bip122:1a91e3dace36e2be3bf030a65679fe82/slip44:3',
keyPath: "m/44'/3'/0'/0/0"
})

Response

FieldTypeNotes
body.parameter.addressstringThe Dogecoin account address — base58 P2PKH, prefix D
body.commandstringgetAddress
header.statusstringsuccess on completion
{
"header": {
"version": "1.0",
"status": "success"
},
"body": {
"command": "getAddress",
"parameter": {
"address": "D…"
}
}
}

signTransaction

payload.transaction:

{
"inputs": [
{
"rawTransaction": "<prev tx hex>",
"index": 0,
"txType": "p2pkh",
"keyPath": "m/44'/3'/0'/0/0",
"sequence": 4294967295
}
],
"outputs": [
{
"txType": "p2pkh",
"amount": "100000",
"addresses": [
"D…"
]
}
]
}
FieldTypeRequiredSourceUnitNotes
inputs[].rawTransactionhexRequired-RealWalletFull prev-tx hex of the UTXO; must be device-owned
inputs[].indexnumberRequiredAppUTXO output index
inputs[].txTypeenumRequiredAppp2pkh (Dogecoin is legacy-only)
inputs[].keyPathstringRequired-RealWalletPath that signs this input (coinType 3')
inputs[].sequencenumberOptionalAppDefaults to 4294967295
outputs[].txTypeenumRequiredAppp2pkh
outputs[].amountstringRequiredAppkoinuOutput value (1 DOGE = 1e8 koinu)
outputs[].addressesstring[]Required-RealAppbase58 D…. Only addresses[0] is used, and exactly one non-change output is allowed — more than one destination is rejected with param_error. Use a second output with txType: 'change' for change.

Request

await dcent.sign({
method: 'signTransaction',
chainId: 'bip122:1a91e3dace36e2be3bf030a65679fe82/slip44:3',
payload: {
keyPath: "m/44'/3'/0'/0/0",
transaction: {
inputs: [
{
rawTransaction: '<prev tx hex>',
index: 0,
txType: 'p2pkh',
keyPath: "m/44'/3'/0'/0/0",
sequence: 4294967295
}
],
outputs: [
{
txType: 'p2pkh',
amount: '100000',
addresses: [
'D…'
]
}
]
}
}
})

Response

FieldTypeNotes
body.parameter.signaturehexBroadcast-ready serialized signed transaction — the full Dogecoin raw tx hex, not a bare signature. Submit directly to a Dogecoin node (sendrawtransaction).
body.commandstringsignTransaction
header.statusstringsuccess on completion
{
"header": {
"status": "success"
},
"body": {
"command": "signTransaction",
"parameter": {
"signature": "<signed raw tx hex>"
}
}
}

Variant — multi-step builder

As an alternative to the single-call form, the Bitcoin-family stateful builder is available (same API, Dogecoin keyPath / values):

const tx = dcent.getBitcoinTransactionObject()
dcent.addBitcoinTransactionInput(tx, prevTxHex, utxoIndex, 'p2pkh', "m/44'/3'/0'/0/0")
dcent.addBitcoinTransactionOutput(tx, 'p2pkh', 100000, 'D…')
// then sign

Common Mistakes

danger

Wrong coinType in keyPath — Dogecoin uses m/44'/3', not Bitcoin's m/44'/0'. Using a SegWit / bech32 address — Dogecoin has no native SegWit on mainnet; recipients are base58 P2PKH (prefix D) with txType: "p2pkh". Missing change output — unspent input value becomes miner fee. Amounts not in koinu — 1 DOGE = 1e8 koinu.