A

The Ikigai Reimbursement — verifying “same proposer” purely on-chain

Educational walk-through, re-verified against a local cardano-db-sync archive on 2026-07-08. Every claim carries a tx hash you can check yourself. Not affiliated with the proposer; not financial advice.

TL;DR — yes, it is verifiable, and the trick is elegant: the 2026 reimbursement action (#126) sends the 103,000 ADA to the exact reward account (stake1uys93…) that the original 2024 Ikigai action named as its deposit-return address — recorded immutably in field 20 of each transaction. Funds in a reward account can only be withdrawn with that account's stake key. So no matter who submitted the reimbursement, only the holder of the original 2024 key can ever receive the money. Identity is enforced by the payment target itself. On X, @Quantumplation demonstrated this by decoding both raw transactions; several DReps (Hephy, Nimuë, SIPO) independently verified the address match in their published voting rationales.
Verify it yourself right now — 3 explorer links
  1. Open the ORIGINAL 2024 action tx and find the deposit-return address in its governance-action section: adastat.net/transactions/59fd353253eb… ↗
  2. Open the 2026 reimbursement action page (#126) — scroll to the bottom Action tab, where the Treasury Withdrawal section shows the withdrawal target: cardanoscan.io/govAction/gov_action1654yj97lf7g… ↗
  3. Compare both with this stake address — all three must match character for character (the page shows both the bech32 and the hex form): stake1uys93fhep4lc2u6lu0q09kcxayxzthasded35c0x0w60ugc9s0cm5

That single equality — same return account in 2024, same withdrawal target in 2026 — is the whole proof. The steps below explain why it is sufficient, plus the supporting evidence and caveats.

Exactly where to look on each explorer screen

The panels below faithfully reproduce the relevant part of each real explorer page (labels, columns and values as they appear — checked live on 2026-07-08). Red = the value to check. Amber = a look-alike field that is NOT the one you want.

🅰 Screen A — AdaStat: the ORIGINAL 2024 transaction

adastat.net/transactions/59fd353253eb177e… ↗below the three info cards, click the third tab, “Governance Actions”.

⇥ Inputs⇤ Outputs◎ Governance Actions
ActionTypeExpire EpochDepositReward Address
Cardanoの生きがい - Ikigai -Info action517₳100,000.000000stake1uys9...9s0cm5 ←①

The “Reward Address” column of this row IS the deposit-return address of the original action: stake1uys9…9s0cm5. You can also see Deposit ₳100,000 and Expire Epoch 517 on the same row. Bonus check: on the “Inputs” tab, the input's “Staking Account” column shows the same 2058a6f90d…b4fe23 / stake1uys9…9s0cm5 — the proposer submitted from their own wallet.

🅱 Screen B — Cardanoscan: the 2026 reimbursement ACTION page (#126)

cardanoscan.io/govAction/gov_action1654yj97lf7guxsh… ↗scroll PAST the vote charts to the very bottom, to the “Action | Votes | Metadata” tabs. The “Action” tab holds the Treasury Withdrawal details.

ActionVotesMetadata
Treasury Withdrawal
Policy hash
fa24fb305126805cf2164c161d852a0e7330cf988f1…d4a64
Withdrawal
Stake Hexe12058a6f90d7f85735fe3c0f2db06e90c25dfb06e5b1a61e67bb4fe23 ←②
Amount103,000.0 ₳

This “Withdrawal → Stake Hex” IS the withdrawal target — and it equals the hex form of stake1uys93… from Screen A. Clicking it opens the stake-key page (Screen C).

THE TRAP — do not use these look-alike fields: on this same page, the header card labelled “Reward Account” (報酬金額) shows stake1u8453de8xh…qac45ja, and on both explorers' TRANSACTION pages the “Reward Address” column of #126 shows the same stake1u845… — that address is the deposit-return account of the reimbursement action ITSELF (the submitter's wallet), NOT where the 103,000 ADA goes. Comparing that one against Screen A would wrongly conclude “different person”.
🅲 Screen C — Cardanoscan: the stake-key page (bech32 ⇔ hex bridge + registration status)

cardanoscan.io/stakeKey/stake1uys93fhe… ↗reached by clicking the Stake Hex in Screen B, or by pasting the stake address into the search box.

Stake Key DetailsStatusActive←④
stake1uys93fhep4lc2u6lu0q09kcxayxzthasded35c0x0w60ugc9s0cm5 ←③
HEXe12058a6f90d7f85735fe3c0f2db06e90c25dfb06e5b1a61e67bb4fe23
Controlled stake
7.64251 ₳
Deposit
2.0 ₳

The page header shows the SAME key in both notations — bech32 (matches Screen A's Reward Address) and HEX (matches Screen B's withdrawal Stake Hex). This one screen closes the loop: A = C = B.
“Status: Active” + “Deposit 2.0 ₳” = the stake key is currently REGISTERED (the 2026-04-20 registration from step 4 below; the 2 ADA is the standard registration deposit). Before that registration the deposit could never have been paid out — the exact failure that lost the 100k in 2024.

Timeline

📜 2024-09-18Info Action #2 「Cardanoの生きがい - Ikigai -」 submitted, weeks after the Chang hard fork — one of Cardano's first governance actions, a symbolic thank-you to the builders. Deposit: 100,000 ADA.

💸 2024-10 (epoch 517)The action expires. A node bug had allowed submission with an UNREGISTERED stake key, so the deposit cannot be returned and is swept into the treasury. 100,000 ADA lost through no fault of the proposer.

🗳 2025-10 ~ 11Info Action #74 asks: should we reimburse? DReps say YES broadly (161 Yes / 14 No / 14 Abstain; ~68.8% stake-weighted; CC found it constitutional) — but many major DReps (EMURGO, Yoroi…) flag the same concern: WHO is asking, and are they the original proposer? DRep Hephy sets the key condition: a future withdrawal must pay to the SAME address the original action used.

🔑 2026-04-20 (epoch 626)The original stake address is registered for the first time ever — by a transaction whose change returns to the original submitting wallet.

💰 2026-06-09Treasury Withdrawal #126 submitted: 103,000 ADA (100k deposit + 3k claimed lost staking rewards) paid to the ORIGINAL reward account. Hephy's condition is met.

2026-07As of Jul 8: DReps 132 Yes / 15 No / 13 Abstain; CC 4 Yes / 1 Abstain (constitutional).

The verification, step by step

1Find the ORIGINAL action's deposit-return address (2024-09-18)

The original Info Action 「Cardanoの生きがい - Ikigai -」 was submitted on 2024-09-18 in this transaction. Inside a Cardano transaction body, field 20 is `proposal_procedures` — it records, on-chain and immutably: the 100,000 ADA deposit, the governance action type ([6] = Info), the metadata anchor, and crucially the REWARD ACCOUNT the deposit should return to when the action ends. Decoding it gives reward account hex e12058a6f9…23, which is the bech32 stake address below. Note also that the submitting wallet's own address carries the very same stake part — the proposer used their own wallet's stake key as the return account.

Submission tx:
Return reward account (hex):
Same, as stake address:
Submitting wallet address (same stake part):

🔍 How to check yourself: How to check yourself: open the tx on AdaStat / Cardanoscan / cexplorer and look at the governance-action (proposal) section; or fetch the raw CBOR and decode field 20 against the Conway CDDL — this is exactly what @Quantumplation demonstrated on X. With cardano-db-sync: SELECT sa.view FROM gov_action_proposal gap JOIN stake_address sa ON sa.id = gap.return_address WHERE …;

2Confirm WHY the deposit was lost (node bug + unregistered stake key)

Ledger rule: when a governance action ends, the deposit is returned to the specified reward account — but only if that account is REGISTERED. A bug in the cardano-node at the time allowed the action to be submitted with an UNREGISTERED stake key in the first place. The action expired at epoch 517 (Oct 2024) while the return account was still unregistered, so the 100,000 ADA could not be paid out and was swept into the treasury instead. On-chain you can verify the address had zero registration certificates before 2026: its first and only stake registration in history is dated 2026-04-20 (step 4).

Action expired:
Stake registrations before 2026:

🔍 How to check yourself: db-sync: SELECT count(*) FROM stake_registration sr JOIN stake_address sa ON sa.id=sr.addr_id WHERE sa.view='stake1uys93…' — returns exactly 1 row, dated 2026-04-20. Explorers show the same under the stake address's certificate history.

3THE CORE CHECK — the reimbursement pays to the SAME reward account

The Treasury Withdrawal action #126 (submitted 2026-06-09) also carries a `proposal_procedures` in field 20 of its transaction — and its withdrawal map directs 103,000 ADA to reward account e12058a6f9…23: byte-for-byte the SAME account the original 2024 action named as its deposit-return address. This is the single most important fact. A withdrawal into a reward account can only ever be spent by a WITHDRAWAL SIGNED WITH THAT STAKE KEY. So even in the worst case — even if the person who submitted #126 were a total stranger — the 103,000 ADA can only be claimed by whoever holds the original 2024 stake key. The design makes the identity question almost moot: the money is cryptographically locked to the original proposer.

Reimbursement tx (#126):
Withdrawal target:
Amount:

🔍 How to check yourself: db-sync: SELECT sa.view, tw.amount FROM treasury_withdrawal tw JOIN stake_address sa ON sa.id=tw.stake_address_id WHERE tw.gov_action_proposal_id=<#126>; — or open the action on AdaStat / GovTool and compare the withdrawal address with step 1's address character by character.

4Supporting evidence — the original WALLET re-registered the stake key (2026-04-20)

On 2026-04-20 (epoch 626) — before #126 was submitted — a transaction registered stake1uys93… for the first time in its history (2 ADA deposit). Two details make this strong evidence of continued control: (a) the registration means the withdrawn funds CAN now actually land in the account (fixing the very failure mode that lost the deposit in 2024), and (b) the transaction's change output goes back to addr1q9fn0s96… — exactly the wallet address that submitted the original 2024 action. Spending from that address requires its payment key, so the original wallet was demonstrably alive and acting in April 2026. One honest caveat raised by @Quantumplation: before the v11 hard fork, a legacy registration certificate did not strictly require the stake key's own signature, so registration ALONE would not be conclusive — but combined with the change going to the original wallet, and with step 3 (funds only spendable by the original key anyway), the picture is coherent.

Registration tx:
Date / epoch:
Change returns to (original wallet):

🔍 How to check yourself: Open the registration tx on any explorer: check the certificate (stake registration for stake1uys93…) and the output addresses. db-sync: SELECT … FROM stake_registration JOIN tx …; then SELECT address FROM tx_out WHERE tx_id = <that tx>.

5What even stronger proof would look like (DRep critique)

DRep Nimuë (@nimuepool) — who verified the address match and the registration, but voted NO over the extra 3,000 ADA — noted that the cleanest possible proof would have been to add the original stake key as a REQUIRED SIGNER on the withdrawal action's transaction itself. That would have cryptographically demonstrated, at the moment of submission, both (a) current control of the key and (b) the key holder's consent to the reimbursement. A CIP-8 signed message from the original key would serve similarly. Neither was done here — the community instead relied on the payment-target binding (step 3), which protects the funds but does not by itself prove the SUBMITTER is the original proposer.

Who established this publicly

🧵 @Quantumplation (Pi Lanningham, ex-SundaeSwap CTO) — in an X thread on 2026-06-09 (hours after #126 was submitted, replying to @adamKDean and others), he decoded the RAW BYTES of both transactions: field 20 (`proposal_procedures`) of the 2024 tx to extract the deposit-return reward account, and field 20 of the 2026 tx to extract the withdrawal target — showing they are the same account (e12058a6f9…23). He also traced that the stake address is associated with exactly one full address, the same address that held the 100k ADA before the original submission, and raised the pre-v11 caveat about registration certificates covered in step 4. Thread ↗

🗳 DRep Hephy (@hephypool) — in his #74 rationale (Nov 2025) he pre-committed the verification criterion: “provided that any subsequent treasury withdrawal action identifies the same address as was used to submit the Ikigai info action … I see little reason to vote NO” — and in his #126 rationale he confirmed: the withdrawal stake address matches.

🗳 DRep Nimuë (@nimuepool) — verified both the address match (“an important requirement for me”) and the recent registration, and articulated the strongest-proof critique (required signer / step 5). Voted NO solely over the extra 3,000 ADA for staking rewards.

🗳 SIPO (@SIPO_Tokyo) — published a detailed Japanese rationale/analysis: the loss came from a node bug that allowed an unregistered stake key, the reimbursement is restitution (not a discretionary grant), and it fits Article II.7 cleanly (one-time, direct, on-chain auditable).

All DRep rationales quoted here are public on-chain metadata attached to their votes on actions #74 / #126 — viewable on this site's /gov page or any governance explorer.

Honest residual caveats

Key compromise: if the original stake key had been stolen at some point, the thief — not the original human — would receive the funds. No on-chain method can distinguish a key holder from the original human. (Nimuë's “assuming the private key has not been compromised”.)

The registration certificate alone (step 4) is weaker evidence than it looks, because pre-v11 rules did not strictly require the stake key's signature for a legacy registration — the change-address linkage and the payment-target binding carry the real weight.

The SUBMITTER of #126 used a different wallet (stake1u8453…). That is fine under the payment-target logic, but it means “the submitter = the original proposer” is inferred, not cryptographically proven — a required signer would have closed that gap (step 5).

Whether the extra 3,000 ADA (claimed lost staking rewards) is justified is a policy question, not an identity question — several DReps voted NO on that basis alone.

Why this case matters

This is a template for trust-minimized restitution. Instead of asking a committee to verify documents or take someone's word, the community engineered the payment so that only the provably-affected key can benefit — then verified that engineering byte-by-byte from public data. The whole dispute reduced to one checkable equality: original action's return account == reimbursement's withdrawal target. Anyone with an explorer, a Koios query, or a db-sync instance can re-derive it. That is what “don't trust, verify” looks like in treasury governance.

Links & references

Facts verified 2026-07-08 against cardano-db-sync (mainnet archive). Corrections welcome.