2. Would you store the separators ("-") directly in the blockchain, or only use them for display?
Do not store the separator, usually you want your TX size to be as small as possible to reduce burden of node and allow more TX on a block.
3. Do you think this improves usability, or is there a better approach?
I don't claim it's better approach, but have you checked SWIFT (A-Z) or IBAN (0-9 and A-Z) code format? SWIFT approach is straightforward, while IBAN mitigate typo between letter O and number 0 by mod 97 and other check.
F369-5538-4066-7499-9028-0027
If this is the real address, then do you want to use 96-bit addresses? If so, then after around 2^48 operations, you could have collisions.
Could be less than 96-bit, if the address also contain checksum.
Thank you again for your suggestions.
I really appreciate the feedback about not storing separators in the blockchain and about using a checksum.
After reading the comments in this thread, I've decided to update my implementation before continuing.
My current plan is:
- Store the address internally without separators.
- Use separators only for display in the wallet/UI.
- Increase the address length.
- Experiment with adding a checksum to reduce typing errors.
Once I've finished these changes, I'll mine a new genesis block and share the updated block JSON here.
I'd really appreciate it if you could review it and let me know whether the structure looks reasonable before I continue with transaction validation, mining, and networking.
Thank you for taking the time to help. I'm learning a lot from this discussion.