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.
- Open the ORIGINAL 2024 action tx and find the deposit-return address in its governance-action section: adastat.net/transactions/59fd353253eb… ↗
- 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… ↗
- 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.
adastat.net/transactions/59fd353253eb177e… ↗ — below the three info cards, click the third tab, “Governance Actions”.
| Action | Type | Expire Epoch | Deposit | Reward Address |
|---|---|---|---|---|
| Cardanoの生きがい - Ikigai - | Info action | 517 | ₳100,000.000000 | stake1uys9...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.
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.
② 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).
cardanoscan.io/stakeKey/stake1uys93fhe… ↗ — reached by clicking the Stake Hex in Screen B, or by pasting the stake address into the search box.
③ 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-18 — Info 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 ~ 11 — Info 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-09 — Treasury 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-07 — As of Jul 8: DReps 132 Yes / 15 No / 13 Abstain; CC 4 Yes / 1 Abstain (constitutional).
The verification, step by step
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.
🔍 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 …;
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).
🔍 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.
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.
🔍 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.
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.
🔍 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>.
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
- • Original action #2 tx: AdaStat ↗ / Cardanoscan ↗
- • Info Action #74 tx: AdaStat ↗
- • Reimbursement #126 tx: AdaStat ↗
- • Stake registration tx (2026-04-20): AdaStat ↗
- • Original reward account: stake1uys93fhep4lc2u6lu0… ↗
- • @Quantumplation verification thread: x.com ↗
- • Conway CDDL (tx body field 20 = proposal_procedures): cardano-ledger ↗
- • This site's live vote view: /gov ・ /treasury-votes
Facts verified 2026-07-08 against cardano-db-sync (mainnet archive). Corrections welcome.