What maps where
| v1 | v2 | note |
|---|---|---|
| alias ∪ constants | constants | constants win over aliases, as the old server had it; an id written inline in a transfer gets a constant made for it |
| parameters | inputs | typed from the prompt's example: [eg 0.0.12345] is an account, [eg 0.0.1-123-456] a txid, else a string. buyer becomes an account input |
| api | observe | the host becomes a registry name (hedera.mirror, xproof.xtxt…) and the verifier picks the host; the #a/0/b selector becomes JMESPath. A host no name covers is refused |
| regex | derive / require | v2 has no regex. The three patterns the archive uses are engine ops in disguise — a digit of a timestamp, an account id with its checksum, a URL minus its scheme — and convert to them. A pattern that only checks a format is dropped when you tick the box, and listed as weakened |
| mathFormula | derive | the expression, compiled to JSONLogic |
| joinText | memo / derive | memo and memo_suffix become the memo; other joins become cat(…) |
| range | require | one rule per comparison, with its reason |
| JWT · password · ip_allow · timelock · xproof (tweets) · PWYW · … | — | refused, by name: server-side checks with no chain-verifiable form. A v2 policy cannot keep a secret, read a tweet or remember who came before |
| addHbarTransfer | hbarTransfers | v1 wrote whole HBAR; v2 writes tinybars (× 1e8, must be whole) |
| addTokenTransfer · addNftTransfer | tokenTransfers · nftTransfers | token amounts were already smallest units. An NFT line saying any or 1to100 is refused — v2 moves one serial |
| display · userInput · comments | name | the title is the name (it is hashed); the rest was presentation |
Klotto's own claim and unlock go through the exact path that reproduces its published v2 twins hash for hash (qa/klotto/convert-tests.js); everything else goes through the general mapping (kea/tools/convert-generic.cjs, qa/convert/generic-tests.js). Across a sample of 204 archive deals and xproof's 34, about 40% convert cleanly; the rest are refused for a reason this page will show you, most often a server-side script or a read from a host that no longer exists.