Wait for voting to close
The proposal detail page shows the voting deadline. Tokens cannot be unlocked while the vote is still open — the covenant enforces this with
tx.locktime >= votingPeriodEnd.Unlock tokens
Click Unlock Tokens. The app calls
POST /api/governance/:proposalId/unlock with your address. The backend reads your stored contract_address, constructor_params, and nft_commitment from when you confirmed the lock.Sign
Your wallet displays the unlock transaction. Sign it — this returns your CashTokens to your address.
What if the Contract Data is Missing?
If you voted using the off-chain vote endpoint (without locking on-chain), there is no VoteLockCovenant to unlock — no tokens were ever locked. Only votes submitted viaPOST /governance/:id/lock and confirm-lock lock actual tokens.
Lost Vote Record
The vote record is stored ingovernance_votes linked to your voterAddress and the proposalId. If the record is missing contract_address (e.g. the lock was never confirmed), the unlock endpoint returns 400: Vote lock contract data not recorded. Contact the FlowGuard team to resolve manually.
