Avoid deduplicating Arweave transactions by last_tx

The historical field name last_tx can suggest a strict chain of wallet transactions. Arweave also permits a recent block anchor shared by distinct signed transactions.

Inspect a pair of anchored submissions

Suppose an uploader fetches an anchor from /tx_anchor and prepares two uploads with different payloads. Both can reference block H. If an indexer keys incoming records by owner and last_tx, it may discard the second document. Use the transaction IDs as identities and retain the anchor as a separate validation field.

T1.last_tx = block anchor H
T2.last_tx = block anchor H
T1.id != T2.id

Handle stale unsigned drafts

Before signing a long-lived draft, obtain an appropriate fresh anchor. Changing last_tx after signing changes the signed message and requires a new signature. Keep the business document identifier separate as well, since submitting two distinct signed transactions may represent one application-level intention.

Sources