🔐 OIP v0.9 Cryptographic Debugger
Step through the complete signing workflow for publishing POST records
1
Input
2
OIP Format
3
Digest
4
Sign
5
Verify
6
Publish
1 Create POST Record
🔑 Creator Identity
⚠️ For testing only. Never share your real mnemonic!
DID
-
Signing xpub
-
2 OIP v0.9 Format Translation
Field names are replaced with their index values from the POST template. This compresses the record for efficient blockchain storage.
Field Mapping
| Human Field | Index | Value |
|---|
Comparison
📝 Human-Readable Input
📦 OIP v0.9 Compressed Format
3 Payload Digest Computation
The payload is serialized using Canonical JSON (sorted keys, no whitespace), then SHA-256 hashed. This digest is used for both key derivation and signing.
Canonical JSON (Pre-Signature)
Keys sorted alphabetically, no signature tags included yet
Payload Digest
SHA-256 Hash (Base64URL encoded)
-
Key Derivation Index
Algorithm: uint31(SHA256("oip:" + payloadDigest))
Derived Index (for key derivation path)
-
Full Derivation Path
-
4 Signature Generation
A child key is derived from the signing xpub at the computed index, then used to sign the payload hash using secp256k1 ECDSA.
Derived Signing Key
Public Key (compressed, hex)
-
Message Hash
SHA-256 of the canonical JSON payload
-
ECDSA Signature
Compact signature (Base64URL encoded)
64 bytes raw
-
5 Signature Verification
Verification confirms the signature is valid. Any verifier can derive the same public key from the xpub using the payload digest, then verify the signature.
Verifying...
Computing verification
Verification Steps
- Extract PayloadDigest from tags → pending
- Recompute digest from unsigned payload → pending
- Compare digests (must match) → pending
- Derive key index from digest → pending
- Derive verification key from xpub → pending
- Verify ECDSA signature → pending
Verification Summary
| Payload Digest (from tag) | - |
| Payload Digest (recomputed) | - |
| Key Index (from tag) | - |
| Key Index (derived) | - |
| Signature Valid | - |
6 Final Arweave Transaction
✅ Record is signed and ready to publish to the blockchain!
Transaction Tags
These tags are stored on the Arweave transaction for indexing
Transaction Data
This JSON is stored as the transaction's data payload