account_balance_walletD-IBAN

Dogecoin Protocol IBAN Address Format Converter

swap_horizConvert Dogecoin Address to D-IBAN

infoHow the Encoding Protocol Works

expand_more

D-IBAN (Dogecoin IBAN) uses the same ISO 13616-1:2020 IBAN standard that banks worldwide use for international bank account numbers. This is the latest international standard (Edition 2, published 2020) that specifies the structure of IBANs for financial services. This ensures full compatibility and familiarity with the existing financial infrastructure.

The encoding process:

  • Base58 to Bytes: Your Dogecoin address (Base58Check format) is first decoded into its raw byte representation (25 bytes)
  • Base36 Encoding: The bytes are then encoded into Base36 format (0-9, A-Z) to create a 39-character payload that's compatible with IBAN's alphanumeric requirements
  • IBAN Structure: The D-IBAN follows the standard IBAN format: DO[CC][TT][BBBB...] where:
    • DO = Country code (Dogecoin)
    • CC = 2-digit checksum (MOD-97-10 algorithm)
    • TT = Address type code:
      • 00 = P2PKH (Pay-to-Public-Key-Hash) - Standard addresses starting with 'D'
      • 01 = P2SH (Pay-to-Script-Hash) - Multisig and script addresses starting with '9' or 'A'
      • 02 = P2WPKH (Pay-to-Witness-Public-Key-Hash) - Bech32 addresses starting with 'doge1'
      • 03 = P2SH-CLTV (Time-locked addresses) - Script addresses with CheckLockTimeVerify
    • BBBB... = 39-character Base36 encoded payload
  • Address Type Detection: The protocol automatically detects the address type from the address prefix:
    • Addresses starting with 'D' → P2PKH (most common)
    • Addresses starting with '9' or 'A' → P2SH (multisig, time-locked, etc.)
    • Addresses starting with 'doge1' → P2WPKH (Bech32 witness addresses)
  • MOD-97 Checksum: Uses the same MOD-97-10 algorithm used by banks worldwide to validate IBAN codes, ensuring data integrity and error detection

This protocol allows Dogecoin addresses to be represented in a standardized, internationally-recognized format that's easy to read, verify, and use in traditional banking systems and payment processors.

Supported Address Types:

  • P2PKH (00): Standard single-signature addresses (most common)
  • P2SH (01): Script-based addresses including multisig wallets, time-locked addresses (CLTV), and other advanced scripts
  • P2WPKH (02): Segregated Witness addresses using Bech32 encoding
  • P2SH-CLTV (03): Explicitly marked time-locked addresses with CheckLockTimeVerify scripts

ISO Standard Compliance: D-IBAN fully complies with ISO 13616-1:2020 (Financial services — International bank account number — Part 1: Structure of the IBAN), ensuring it meets the same rigorous standards used by financial institutions globally.

verifiedVerify D-IBAN

verified_userIBAN Verification Protocol

expand_more

D-IBAN verification uses the exact same MOD-97-10 checksum algorithm that banks use worldwide to validate IBAN codes. This follows the ISO 13616-1:2020 international standard (Edition 2, published 2020) for bank account number validation, ensuring full compliance with current banking regulations and financial services requirements.

The verification process:

  • Format Check: First validates the structure matches the IBAN pattern: DO[0-9]{2}[0-9]{2}[A-Z0-9]{39}
  • Character Validation: Ensures all characters are valid (letters and numbers only, no special characters)
  • MOD-97-10 Algorithm: The same algorithm banks use:
    • Rearranges the IBAN by moving the first 4 characters (country code + checksum) to the end
    • Converts letters to numbers (A=10, B=11, ..., Z=35) as per IBAN standard
    • Performs MOD-97 calculation on the entire string
    • Valid IBANs result in a remainder of 1
  • Checksum Validation: The embedded checksum digits are recalculated and compared to ensure the code hasn't been corrupted or mistyped

This verification ensures that any D-IBAN code is mathematically valid and follows the same rigorous standards as traditional bank IBANs. It can detect single-digit errors, transpositions, and other common mistakes with 99.9% accuracy.

ISO Standard Compliance: The verification algorithm strictly adheres to ISO 13616-1:2020 specifications, ensuring compatibility with all banking systems and financial software that process IBAN codes.

lock_openDecode D-IBAN to Dogecoin Address

codeDecoding Protocol

expand_more

Decoding reverses the encoding process to recover the original Dogecoin address. The protocol ensures lossless conversion - you can encode and decode indefinitely without losing any data.

The decoding process:

  • Verification First: Before decoding, the D-IBAN is verified using the MOD-97-10 checksum to ensure it's valid and hasn't been corrupted
  • Type Extraction: The address type code (TT) is extracted to determine how to decode the payload
  • Payload Extraction: The 39-character Base36 payload is extracted from the D-IBAN (skipping the country code, checksum, and type fields)
  • Base36 to Bytes: The Base36 string is converted back to its 25-byte binary representation
  • Address Reconstruction: Based on the type code:
    • P2PKH (00) & P2SH (01): Bytes are encoded into Base58Check format
    • P2WPKH (02): Bytes are decoded from UTF-8 to recover the Bech32 address
    • P2SH-CLTV (03): Bytes are encoded into Base58Check format (time-locked script addresses)
  • Type Information: The decoded address includes its type information (P2PKH, P2SH, P2WPKH, etc.) for proper handling

This bidirectional conversion allows D-IBAN codes to be used in traditional banking systems, payment processors, and financial software while maintaining full compatibility with the Dogecoin blockchain. The protocol is reversible - any valid D-IBAN can be decoded back to its original Dogecoin address with 100% accuracy.

Use Cases: This enables Dogecoin addresses to be integrated into banking systems, accounting software, payment gateways, and other financial infrastructure that expects IBAN-format account numbers, while maintaining full blockchain compatibility.

ISO Standard Compliance: The decoding process maintains full compliance with ISO 13616-1:2020, ensuring that D-IBAN codes can be processed by any system that handles standard IBAN formats, including international banking networks and financial service providers.

phone_androidDogecoin Wallet Implementation

codeIntegration Guide

expand_more

Integrating D-IBAN into a Dogecoin wallet is straightforward. The D-IBAN library is lightweight (~10KB) and can be easily integrated into mobile apps, web wallets, or desktop applications.

Step 1: Include the Library

For Web Wallets:

<script src="js/diban.js"></script>

For Node.js/React Native:

const { encodeDIBAN, decodeDIBAN, verifyDIBAN } = require('./js/diban.js');

Step 2: Generate D-IBAN for User Addresses

When displaying a user's receive address, generate and show the D-IBAN format:

// User's Dogecoin address
const userAddress = "DTqAFgNNUgiPEfFmc4HZUkqJ4sz5vADd1n";

// Generate D-IBAN
const result = encodeDIBAN(userAddress);

// Display both formats
console.log("Dogecoin Address:", userAddress);
console.log("D-IBAN Code:", result.diban);
console.log("Address Type:", result.type.name);

Step 3: Accept D-IBAN for Payments

Allow users to paste D-IBAN codes when sending payments:

// User pastes D-IBAN
const userInput = "DO12 0000 1234 5678 9012 3456 7890 1234 5678 9012 3456 789";

// Verify first
if (verifyDIBAN(userInput)) {
    // Decode to Dogecoin address
    const decoded = decodeDIBAN(userInput);
    
    // Use the address for payment
    sendPayment(decoded.address, amount);
} else {
    showError("Invalid D-IBAN code");
}

Step 4: Display D-IBAN in QR Codes

Include D-IBAN in QR codes for easy sharing:

// Generate QR code with both formats
const qrData = {
    address: userAddress,
    diban: result.diban,
    type: result.type.name
};

generateQRCode(JSON.stringify(qrData));

Benefits for Wallet Users

  • Banking Integration: Users can share D-IBAN codes with banks and payment processors
  • Easy Sharing: D-IBAN format is familiar and easy to share
  • Error Detection: Built-in checksum prevents typos
  • Multiple Formats: Display both traditional address and D-IBAN
  • Type Information: Automatically detects and displays address type

UI Integration Example

Add a toggle or button to show D-IBAN format:

// In your wallet UI
function showReceiveAddress(address) {
    const diban = encodeDIBAN(address);
    
    return `
        <div class="address-display">
            <button onclick="toggleFormat()">Show D-IBAN</button>
            <div class="address">${address}</div>
            <div class="diban" style="display: none;">${diban.diban}</div>
            <div class="type">Type: ${diban.type.name}</div>
        </div>
    `;
}

Note: The D-IBAN library is lightweight and works in both browser and Node.js environments. No external dependencies are required.

account_balanceBank Implementation

businessIntegration Guide

expand_more

Banks can implement D-IBAN with minimal structural changes because it uses the same ISO 13616-1:2020 standard that banks already use for traditional IBAN processing.

Why Minimal Changes Are Needed

  • Same ISO Standard: D-IBAN uses ISO 13616-1:2020 - the exact same standard banks use
  • Same Validation: MOD-97-10 checksum algorithm (already implemented)
  • Same Format: Standard IBAN structure banks already process
  • Reuses Infrastructure: Existing IBAN validation, routing, and processing systems

Implementation Approach: Country Code Registration

The recommended approach is to register "DO" as an official IBAN country code for Dogecoin. Banks can then treat D-IBAN codes like any other international IBAN.

Step 1: Add Country Code Routing

Add one condition to your existing IBAN router:

function routeIBAN(iban) {
    const countryCode = iban.substring(0, 2);
    
    // Add this condition (new)
    if (countryCode === "DO") {
        return processDogecoinIBAN(iban);
    }
    
    // Existing routing (unchanged)
    return processTraditionalIBAN(iban);
}

Step 2: Reuse Existing Validation

Your existing IBAN validator already works for D-IBAN:

// Existing validation function (no changes needed)
function validateIBAN(iban) {
    const clean = iban.replace(/\s+/g, "");
    const rearr = clean.slice(4) + clean.slice(0, 4);
    return mod97Check(rearr) === 1;  // Works for D-IBAN too!
}

Step 3: Create Dogecoin Processing Module

Create an isolated module for Dogecoin processing:

// New module (isolated, ~260 lines of code)
function processDogecoinIBAN(diban) {
    // Decode D-IBAN to Dogecoin address
    const { address, type } = decodeDIBAN(diban);
    
    // Process using existing payment infrastructure
    return processPayment({
        address: address,
        type: type.name,
        blockchain: 'dogecoin'
    });
}

What Banks Need to Change

Existing Systems (No Changes):

  • ✅ IBAN validation engine
  • ✅ MOD-97-10 checksum algorithm
  • ✅ Payment routing infrastructure
  • ✅ Transaction processing systems
  • ✅ Account management

New Components (Isolated):

  • ⚪ D-IBAN decoder module (~200 lines)
  • ⚪ Dogecoin address validator (~50 lines)
  • ⚪ Country code router condition (~10 lines)
  • ⚪ Optional: D-IBAN mapping table

Implementation Phases

  1. Week 1: Validation Integration - Add D-IBAN validation (Low Risk)
  2. Week 2: Routing Integration - Add "DO" country code routing (Low Risk)
  3. Week 3-4: Processing Integration - Implement Dogecoin payment processing (Medium Risk)
  4. Week 5-6: Testing & Deployment - End-to-end testing and gradual rollout

Benefits for Banks

  • Leverage Existing Infrastructure: Reuse IBAN validation, payment processing, and compliance systems
  • Minimal Development Cost: ~260 lines of isolated, testable code
  • Standards Compliant: Uses existing ISO 13616-1:2020 standard
  • Low Risk: Isolated module, easy to test and deploy
  • Future-Proof: Easy to add other cryptocurrencies

Complete Integration Example

// Existing Payment Service (minimal modification)
class PaymentService {
    async process(iban, amount) {
        // Validate (works for D-IBAN)
        if (!this.ibanService.validate(iban)) {
            throw new Error("Invalid IBAN");
        }
        
        const countryCode = iban.substring(0, 2);
        
        // Add Dogecoin routing (new)
        if (countryCode === "DO") {
            return await this.processDogecoin(iban, amount);
        }
        
        // Existing processing (unchanged)
        return await this.processTraditional(iban, amount);
    }
    
    // New method (isolated)
    async processDogecoin(diban, amount) {
        const { address } = decodeDIBAN(diban);
        return await this.blockchainService.send(address, amount);
    }
}

For detailed implementation guide, code samples, security considerations, and compliance guidelines, see: BANK_IMPLEMENTATION.md

Cost Estimation: ~2-3 weeks development time, minimal infrastructure costs, isolated module for easy maintenance.

emoji_emotionsDogeMoji - Emoji Address Protocol

infoAbout DogeMoji Protocol

expand_more

DogeMoji is a compact, user-friendly protocol that converts Dogecoin addresses into emoji sequences. It's designed to be more memorable, shareable, and visually appealing than traditional addresses.

Key Features:

  • Compact Format: Emoji sequences are shorter and easier to share than traditional addresses
  • Visual Appeal: Uses fun emojis that are easy to recognize and remember
  • Built-in Validation: Includes checksum emoji for error detection
  • Reversible: 100% lossless conversion - can decode back to original address
  • Type Detection: Automatically detects and encodes address type (P2PKH, P2SH, P2WPKH)
  • Universal: Works with any Dogecoin address type

How It Works:

  • Encoding: Converts 25-byte address to emoji sequence using 64-emoji base encoding
  • Type Emoji: First emoji indicates address type (🐕=P2PKH, 🔐=P2SH, 🚀=P2WPKH, ⏰=Time-locked)
  • Payload: Address bytes encoded as emoji sequence
  • Checksum: Last emoji is a checksum for validation (✅, ✔️, ✓, ☑️, 🔒, 🔐, 🔑, 🎫)

Use Cases: Perfect for social media sharing, QR codes, easy-to-remember addresses, and making cryptocurrency more accessible and fun!

swap_horiz Convert to DogeMoji

verified Verify DogeMoji

lock_open Decode DogeMoji

text_fieldsDogeWords - Word Address Protocol

infoAbout DogeWords Protocol

expand_more

DogeWords is a mnemonic-style protocol that converts Dogecoin addresses into sequences of short, positive, kind words. It's designed to be easy to read, remember, and share - perfect for human-friendly address representation.

Key Features:

  • Human-Friendly: Uses short, positive words that are easy to read and remember
  • Kind & Positive: All words are carefully selected to be positive and kind
  • Mnemonic Style: Similar to seed phrase mnemonics, but for addresses
  • Built-in Validation: Includes checksum word for error detection
  • Reversible: 100% lossless conversion - can decode back to original address
  • Type Detection: Automatically detects and encodes address type (P2PKH, P2SH, P2WPKH)
  • Universal: Works with any Dogecoin address type

How It Works:

  • Encoding: Converts 25-byte address to word sequence using 64-word base encoding
  • Type Word: First word indicates address type (dog=P2PKH, safe=P2SH, fast=P2WPKH, time=Time-locked)
  • Payload: Address bytes encoded as word sequence
  • Checksum: Last word is a checksum for validation (valid, check, proof, solid, sound, sure, true, good)

Use Cases: Perfect for easy-to-read addresses, voice sharing, making cryptocurrency more accessible, and creating memorable address representations!

swap_horiz Convert to DogeWords

verified Verify DogeWords

lock_open Decode DogeWords

imageSteganography - Image Address/Private Key Encoding

infoAbout Steganography Protocol

expand_more

Steganography allows you to hide a Dogecoin address or private key inside an image using LSB (Least Significant Bit) encoding. The encoded image looks identical to the original, making it perfect for sharing addresses or securely storing private keys in a hidden way.

Key Features:

  • Invisible Encoding: The encoded image looks identical to the original - no visible changes
  • LSB Technique: Uses Least Significant Bit encoding in RGB channels for maximum stealth
  • Lossless: 100% reversible - can decode back to original address or private key
  • Type Detection: Automatically detects and encodes address type (P2PKH, P2SH, P2WPKH) or private key (WIF format)
  • Universal: Works with any Dogecoin address type and WIF private keys
  • PNG Format: Encoded images are saved as PNG to preserve pixel data
  • Private Key Support: Securely encode and decode WIF format private keys

How It Works:

  • Encoding: Converts Dogecoin address or private key to bytes and embeds them in the LSB of image pixels
  • Magic Marker: Uses "DOGE" marker to identify encoded images
  • Type Byte: Stores data type (address or private key) for proper decoding
  • Length Header: Stores data length for proper decoding
  • Pixel Storage: Each pixel stores 3 bits (one in each RGB channel)
  • Decoding: Extracts LSB from pixels and reconstructs the address or private key

Use Cases: Perfect for sharing addresses in images, hiding addresses in artwork, securely storing private keys in images, creating secret address/private key sharing methods, and making cryptocurrency data more shareable through images!

⚠️ Security Warning: Be extremely careful when encoding private keys. Never share images containing private keys publicly, as anyone who decodes the image will have access to your funds!

Note: The image must be large enough to store the address. Smaller images may not have enough pixels. PNG format is recommended for best results.

swap_horiz Encode Address or Private Key in Image

lock_open Decode Address or Private Key from Image