📍 INTcoin Address Formats

Complete Guide to INTcoin Address Types and Usage

Overview

INTcoin uses unique address formats distinct from Bitcoin and other cryptocurrencies. All addresses are quantum-resistant using CRYSTALS-Dilithium5 public keys and SHA3-256 hashing.

⚠️ Important: INTcoin ≠ Bitcoin

INTcoin addresses are NOT compatible with Bitcoin or any other cryptocurrency. Sending funds to the wrong address type will result in permanent loss of funds. Always verify you are using an INTcoin address (starts with INT1, INT3, or lnint).

On-Chain Address Formats

1. Pay to Public Key Hash (P2PKH)

Mainnet: INT1A2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s
Testnet: TINTA2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s

Standard address type for receiving payments. Starts with INT1 on mainnet.

Address Generation Process:

  1. Generate Dilithium5 keypair (public key: 2,592 bytes)
  2. Hash public key with SHA3-256 → 32 bytes
  3. Take first 20 bytes (RIPEMD-160 equivalent)
  4. Add version byte:
    • Mainnet P2PKH: 0x4E (ASCII 'N' for iNt)
    • Testnet P2PKH: 0x6F
  5. Compute double SHA3-256 checksum (first 4 bytes)
  6. Encode with Base58Check → Final address
# Example P2PKH address generation (pseudocode) dilithium_pubkey = generate_dilithium5_keypair().public_key # 2,592 bytes pubkey_hash = sha3_256(dilithium_pubkey)[:20] # First 20 bytes version_byte = 0x4E # Mainnet payload = version_byte + pubkey_hash checksum = sha3_256(sha3_256(payload))[:4] address = base58_encode(payload + checksum) # Result: INT1A2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s

2. Pay to Script Hash (P2SH)

Mainnet: INT3X4y5Z6a7B8c9D0e1F2g3H4i5J6k7L8m9N0o
Testnet: TINT3X4y5Z6a7B8c9D0e1F2g3H4i5J6k7L8m9N0o

Used for multi-signature wallets and smart contracts. Starts with INT3 on mainnet.

P2SH Generation:

  1. Create redeem script (e.g., 2-of-3 multisig)
  2. Hash script with SHA3-256 → 32 bytes
  3. Take first 20 bytes
  4. Add version byte:
    • Mainnet P2SH: 0x05
    • Testnet P2SH: 0xC4
  5. Compute checksum and encode with Base58Check

Version Byte Summary

Address Type Network Version Byte Prefix Example
P2PKH Mainnet 0x4E INT1... INT1A2b3C4d5E6f7G8h9I0jK1L...
P2PKH Testnet 0x6F TINT... TINTA2b3C4d5E6f7G8h9I0jK1L...
P2SH Mainnet 0x05 INT3... INT3X4y5Z6a7B8c9D0e1F2g3H4...
P2SH Testnet 0xC4 TINT3... TINT3X4y5Z6a7B8c9D0e1F2g3H...

Lightning Network Address Formats

Lightning Invoices (BOLT #11)

Mainnet: lnint1000m1p<payment_hash><description><signature>
Testnet: lntint1000m1p<payment_hash><description><signature>

Lightning Network invoices use Bech32 encoding with INTcoin-specific prefixes:

Invoice Structure:

lnint - Human-readable prefix (mainnet) 1000m - Amount: 1000 milli-INT (= 1 INT) 1 - Separator p... - Payment hash (32 bytes, 52 chars in Bech32) d... - Description tag x... - Expiry (default: 3600 seconds) c... - Min final CLTV expiry s... - Payment secret (32 bytes) 9... - Feature bits r... - Route hints (optional) <signature> - Dilithium5 signature (4,595 bytes)

Amount Multipliers:

Multiplier Name Value Example
m milli 0.001 INT lnint250m = 0.25 INT
u micro 0.000001 INT lnint500u = 0.0005 INT
n nano 0.000000001 INT lnint100n = 0.0000001 INT
p pico 0.000000000001 INT lnint50p = 0.00000005 INT

Channel Point Format

Format: <funding_transaction_hash>:<output_index>
Example: a1b2c3d4e5f6...789:0

Lightning channels are identified by the funding transaction hash and output index. Used in channel management commands.

Payment URI Scheme

intcoin:INT1A2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s?amount=10.5&label=Coffee&message=Payment%20for%20coffee

URI Components:

💡 QR Code Support

Payment URIs are ideal for QR codes. The INTcoin wallet can scan QR codes containing payment URIs to automatically fill in payment details.

Comparison with Other Cryptocurrencies

Cryptocurrency Address Prefix Encoding Signature Scheme
INTcoin INT1, INT3, lnint Base58Check, Bech32 Dilithium5 (Quantum-Resistant)
Bitcoin 1, 3, bc1 Base58Check, Bech32 ECDSA secp256k1
Ethereum 0x Hexadecimal ECDSA secp256k1
Litecoin L, M, ltc1 Base58Check, Bech32 ECDSA secp256k1
Monero 4, 8 Base58 EdDSA (Ed25519)

⚠️ Cross-Chain Incompatibility

INTcoin addresses are completely incompatible with Bitcoin, Ethereum, or any other cryptocurrency. The different cryptographic primitives (Dilithium5 vs. ECDSA) and address formats ensure that cross-chain transactions are impossible without atomic swaps or bridges.

Address Validation

Manual Validation

To manually verify an INTcoin address:

  1. Check the prefix:
    • Mainnet: Must start with INT1 or INT3
    • Testnet: Must start with TINT
    • Lightning: Must start with lnint or lntint
  2. Verify length:
    • On-chain addresses: 34-35 characters
    • Lightning invoices: Variable length (typically 200-500 characters)
  3. Check character set: Base58 (no 0, O, I, l) or Bech32 (lowercase only)
  4. Validate checksum (requires software)

Programmatic Validation

# Using intcoin-cli ./intcoin-cli validateaddress INT1A2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s # Response: { "isvalid": true, "address": "INT1A2b3C4d5E6f7G8h9I0jK1L2M3N4o5P6q7R8s", "scriptPubKey": "76a914...", "ismine": false, "iswatchonly": false, "isscript": false, "iswitness": false }

Best Practices

✓ Always Verify

Double-check addresses before sending. One wrong character can result in permanent loss of funds.

✓ Use QR Codes

QR codes reduce manual entry errors. Always scan when possible.

✓ Test with Small Amounts

When using a new address or service, send a small test transaction first.

✓ Save Address Labels

Use the wallet's address book to label frequently used addresses.

✗ Don't Share Private Keys

Never share your Dilithium5 private key (4,864 bytes). Only share addresses.

✗ Don't Reuse Addresses

For privacy, generate a new address for each payment received.

Development Resources