Migration Guide: From Legacy Ordinals to Dogenals v2.0

How existing Doginals projects can adopt “dog” marker, quantum-safe signatures, and hierarchical organization

Overview

This guide helps projects currently using the “ord” marker (Doginals v1.x) migrate to Dogenals v2.0 with the “dog” marker. Migration is optional but recommended for quantum safety and enhanced features.

Migration Options

  • Keep existing “ord” inscriptions working
  • Create new “dog” inscriptions alongside
  • Gradually migrate users and tools
  • Best for: Live marketplaces and active collections

Option 2: Full Migration

  • Convert entire collection to “dog” marker
  • Update all references and tooling
  • Best for: New projects or small collections

Option 3: Hybrid Approach

  • Use “dog” for new inscriptions
  • Maintain “ord” compatibility layer
  • Best for: Indexers and infrastructure providers

Step-by-Step Migration

Phase 1: Assessment & Planning

  1. Audit Current Inscriptions

    # Count your ord inscriptions
    curl "https://your-indexer.com/inscriptions?protocol=ord&creator=YOUR_ADDRESS" | jq '.inscriptions | length'
  2. Identify Critical Assets

    • Which inscriptions need migration first?
    • Which have active marketplace listings?
    • Which are referenced by other systems?
  3. Plan Collection Structure

    • Design hierarchical organization
    • Choose signature scheme (Falcon-512 recommended)
    • Plan directory structure

Phase 2: Setup Quantum-Safe Keys

  1. Generate PQC Keys

    from dogenals_pqc import generate_falcon512_keypair
     
    # Generate quantum-safe keypair
    pubkey, privkey = generate_falcon512_keypair()
     
    # Store securely (HSM recommended)
    save_private_key(privkey, "secure_storage")
  2. Test Signature Verification

    from dogenals_pqc import verify_falcon512_signature
     
    # Test with sample message
    test_message = b"Hello Dogenals v2.0"
    signature = sign_message(privkey, test_message)
     
    assert verify_falcon512_signature(pubkey.hex(), signature.hex(), test_message)

Phase 3: Register Collection

  1. Create Collection Genesis Inscription

    {
      "version": "2.0",
      "protocol": "dog",
      "collection_id": "computed_sha256",
      "owner_pubkey": "your_falcon512_pubkey_hex",
      "signature_scheme": "falcon512",
      "signature": "genesis_signature_hex",
      "collection_rules": {
        "supply_cap": 10000,
        "membership_type": "open",
        "royalty_bps": 500,
        "royalty_address": "D...",
        "governance_model": "creator_controlled"
      },
      "metadata": {
        "name": "My Migrated Collection",
        "description": "Upgraded to Dogenals v2.0",
        "created_at": "2026-04-24T14:20:00Z"
      }
    }
  2. Inscribe Collection Genesis

    # Using PyDoge SDK
    python -c "
    from pydoge import ÐMPClient
    client = ÐMPClient(your_dogecoin_client)
    collection_payload = {...}
    txid = client.inscribe_dmp_operation(collection_payload)
    print(f'Collection registered: {txid}')
    "

Phase 4: Migrate Individual Inscriptions

  1. For Each Legacy Inscription

    def migrate_inscription(legacy_id, content, content_type):
        # 1. Prepare content
        content_data = content.encode('utf-8') if isinstance(content, str) else content
     
        # 2. Compute content hash
        content_hash = sha256(content_type.encode() + b'\0' + content_data).hex()
     
        # 3. Build metadata
        metadata = {
            'version': '2.0',
            'protocol': 'dog',
            'collection_id': YOUR_COLLECTION_ID,
            'owner_pubkey': YOUR_PUBKEY_HEX,
            'signature_scheme': 'falcon512',
            'content_hash': content_hash,
            'parent': legacy_id,  # Link to original
            'metadata': {
                'name': f'Migrated from {legacy_id}',
                'description': 'Quantum-safe upgrade',
                'created_at': datetime.now().isoformat()
            }
        }
     
        # 4. Sign metadata
        message = build_message(metadata)
        signature = sign_falcon512(YOUR_PRIVKEY, message)
     
        # 5. Create inscription
        inscription = {
            'marker': 'dog',
            'content_type': content_type,
            'content': content_data,
            'metadata': {**metadata, 'signature': signature.hex()}
        }
     
        return inscription
  2. Batch Migration Script

    import asyncio
    from pydoge import ÐMPClient
     
    async def batch_migrate(legacy_inscriptions):
        client = ÐMPClient(dogecoin_client)
        migrated = []
     
        for legacy in legacy_inscriptions:
            new_inscription = migrate_inscription(legacy)
            txid = await client.inscribe(new_inscription)
            migrated.append({
                'legacy_id': legacy['id'],
                'new_id': f'{txid}i0',  # Assuming first output
                'txid': txid
            })
     
        return migrated

Phase 5: Update Infrastructure

  1. Indexer Updates

    • Add “dog” marker parsing
    • Implement PQC signature verification
    • Support hierarchical collections
    • Update API endpoints
  2. Marketplace Updates

    • Validate collection signatures
    • Display quantum-safe badges
    • Support directory browsing
    • Update collection pages
  3. Wallet Updates

    • Generate PQC keys
    • Sign “dog” inscriptions
    • Display collection hierarchies
    • Support private vaults

Phase 6: User Communication & Transition

  1. Announce Migration

    • Blog post explaining benefits
    • Timeline for migration
    • User guides and tutorials
  2. Provide Migration Tools

    • Web interface for inscription migration
    • Bulk migration scripts
    • Verification tools
  3. Update Documentation

    • New API documentation
    • Updated collection guides
    • Developer resources

Compatibility Matrix

FeatureLegacy “ord”Dogenals v2.0 “dog”Migration Path
SignaturesNoneRequired PQCAdd to metadata
CollectionsUnsigned manifestsSigned genesisRe-register collection
OrganizationFlatHierarchicalCreate directories
PrivacyNonePrivate vaultsEncrypt content
Quantum SafetyVulnerableProtectedUse PQC signatures

Common Challenges & Solutions

Challenge 1: Key Management

Problem: PQC keys are larger and different from ECDSA Solution: Use hardware security modules (HSMs) or secure key management services

Challenge 2: Content Migration

Problem: Re-inscribing large content is expensive Solution: Use content addressing - reference original inscription as parent

Challenge 3: API Compatibility

Problem: Existing tools expect “ord” format Solution: Implement compatibility layer in indexers

Challenge 4: User Adoption

Problem: Users don’t understand quantum safety benefits Solution: Educational content and gradual migration

Testing Migration

Pre-Migration Checklist

  • All PQC signatures verified
  • Collection genesis inscribed
  • Indexer supports “dog” marker
  • Marketplace validates signatures
  • Wallets generate PQC keys

Post-Migration Validation

def validate_migration(legacy_id, new_id):
    # 1. Verify new inscription exists
    new_inscription = indexer.get_inscription(new_id)
    assert new_inscription['protocol'] == 'dog'
 
    # 2. Verify signature
    assert verify_signature(new_inscription['metadata'])
 
    # 3. Verify parent link
    assert new_inscription['metadata']['parent'] == legacy_id
 
    # 4. Verify content integrity
    legacy = indexer.get_inscription(legacy_id)
    assert new_inscription['content_hash'] == compute_content_hash(legacy)
 
    return True

Rollback Plan

If migration encounters issues:

  1. Pause new inscriptions using “dog” marker
  2. Continue with “ord” for existing workflow
  3. Fix issues in development environment
  4. Resume migration with improved process

Success Metrics

Track these indicators:

  • Signature verification rate: >99.9%
  • Collection migration completion: Target 100%
  • User adoption: Percentage using new features
  • Marketplace compatibility: All listings work
  • Performance: No degradation in indexing speed

Support & Resources

Official Resources

  • Specification: dogenals-protocol-spec.md
  • PQC Guide: pqc-verification-guide.md
  • API Standards: api-contracts.json

Community Support

  • Discord: Dogenals ecosystem channels
  • GitHub: Migration tooling and examples
  • Documentation: Updated guides and tutorials

Professional Services

  • Migration consulting: For large collections
  • Custom tooling: For specialized needs
  • Security audits: PQC implementation verification

Migration to Dogenals v2.0 isn’t just about new features — it’s about future-proofing your digital assets against quantum threats. The “dog” marker represents Dogecoin’s commitment to “do only good everyday” by building technology that lasts.

Start small, test thoroughly, and migrate at your own pace. The ecosystem will be here to support you.

// Dog’s Chosen Tech — Dogenals v2.0 — jonheaven (BC, Canada) — April 2026