Docs
How Dozelatch works
Dozelatch is a weekend latch for your wallet on Robinhood Chain (chain id 4663). You lock ETH or a Robinhood stock token in the contract until the next Monday US market open, 09:30 New York. The contract computes that time itself. There is no admin, no fee, no pause and no upgrade.
Markets are closed. So is your wallet.
Use it
- Open dozelatch.xyz and connect an EVM wallet. The site asks your wallet to switch to (or add) Robinhood Chain.
- Pick an asset: ETH or one of the listed stock tokens (NVDA, TSLA, SPY, AAPL, SPCX, MSTR).
- Enter an amount and choose how many Monday opens to wait (1–52).
- Check the exact unlock time the panel shows (UTC and New York) and how far away it is.
- Press Latch. For a stock token your wallet first asks for an approval of exactly that amount, then the latch itself.
- Your latch appears under My latches with a live countdown.
The unlock time
- Unlock = Monday 09:30 New York. US daylight saving time is computed on-chain (second Sunday of March to first Sunday of November): 13:30 UTC in summer, 14:30 UTC in winter.
- Next open right now: ….
- Weeks = 1 means the next Monday open, whenever you latch. A latch made on a Tuesday waits until the following Monday; a latch made on Monday at 09:20 New York opens ten minutes later. The panel always shows the exact time and warns when it is under 24 hours away.
- The time is fixed in the contract when your transaction is mined, not when you open the page.
What you can do with a latch
- Snooze
- Owner only. Pushes the unlock one more Monday open (from the later of now and the current unlock). Cannot go further than 52 opens from now.
- Release
- Owner only, once the unlock time has passed. Sends the full latched amount back to you.
- Release to another address
- Owner only, once due. For when your own address cannot receive the asset (for example it cannot receive ETH, or a token issuer blocked it). Not to the zero address or the contract itself.
- Take what is left
- Owner only, once due, stock tokens only. See “Issuer-controlled tokens” below.
- Wake early
- Owner only, before the unlock. Burns a fixed amount of $DOZE (sent to
0x…dEaD) and releases now. Burn amount: …. $DOZE in the contract: ….
Limits (read these)
- Market holidays are ignored. The contract does not know US market holidays. On a Monday holiday the latch still opens at 09:30 New York.
- Only the owner can open a latch. Nobody else can release it for you. If the owner is a contract that cannot call functions, the latch cannot be released.
- The owner must be able to receive ETH for an ETH release. If it cannot, use “Release to another address”.
- No early exit without $DOZE. Before the unlock the only way out is Wake early, which needs $DOZE and only works after the token is set in the contract (after launch).
- Weeks are 1–52. Snooze cannot go past 52 opens from now.
- Not audited. The contract had an independent review and a test suite (including every Monday open from 2024 to 2060 checked against the time-zone database), not a paid audit. Latch only what you can afford to have stuck.
Issuer-controlled tokens
Robinhood stock tokens are controlled by their issuer: they are upgradeable and the issuer can pause transfers, block addresses and burn balances. Dozelatch cannot override that.
- If a token is paused, latching and releasing it fail until the issuer unpauses.
- If your address is blocked by the issuer, use “Release to another address”.
- If the contract holds less of a token than was latched (an issuer burn or clawback), Release does not pay short silently: it stops and the site shows how much is available. You can then choose Take what is left to receive that amount.
Safety
- The site never asks for a seed phrase or private key. Every transaction is one you press and sign.
- Stock-token approvals are for the exact amount you latch, not unlimited.
- Official addresses are only posted on dozelatch.xyz and on @dozelatch.
- Contract: …
- Reads come from Robinhood Chain; all numbers on the site are read from the contract, none are estimated.
Contract functions
latchETH(uint8 weeks) payable latchToken(address asset, uint256 amount, uint8 weeks) // approve first snooze(uint256 id) // owner release(uint256 id) // owner, after unlock releaseTo(uint256 id, address to) // owner, after unlock releaseShort(uint256 id, address to) // owner, after unlock, takes what is left wakeEarly(uint256 id) // owner, burns wakeBurn() $DOZE getLatch(id) → (owner, unlockAt, open, asset, amount) latchesOf(address) · latchCount() · activeLatches() · totalLatched(asset) nextOpen(t) · nextOpenAfter(t, weeks) · token() · wakeBurn()