LatePrintLatePrint
Docs

How the vault, the batch and the print actually work.

Every section carries a status. Nothing here is written in the present tense unless it is already true.

Overview

live

LatePrint is a non-displayed trading venue on Robinhood Chain. Deposits go into one vault; every trade executes from that vault's address, so no observer can attribute a live position to a depositor. When a position closes, a signed and provable receipt — the print — publishes on a delay the owner committed to before opening.

It provides position privacy, not transfer privacy. Value entering from an address can only leave to that address or to an allowlist registered publicly at deposit. That rule is enforced by the contract and it is what keeps the product from being a mixer.

Status: pre-launch. The vault is not deployed. Nothing on this site accepts deposits.

Why “unlit”

live

In equity market structure a venue is lit if it displays resting orders before they execute, and unlit if it does not. Unlit venues are ordinary, regulated infrastructure used to move size without being picked off. They still report: trades publish to the tape after execution, and large trades are permitted to publish late.

A public chain is worse than lit — it displays the execution and the owner. LatePrint is the unlit pattern on-chain: pre-trade opacity, post-trade proof, on the owner's timer.

The loop

planned
DepositPublic. ETH or USDG from your own address. Amounts snap to standard denominations.
NoteA commitment in the vault's Merkle tree, bound to the depositing address.
IntentSigned in the browser, sent to the relayer, released in a batch on a randomised 30 s – 5 min window.
ExecutionThe vault swaps against allowlisted Robinhood Chain pools. Sender = the vault.
HoldThe output is a new note. Rendered locally from your viewing key.
CloseA note again. The print is queued with its committed release time.
WithdrawOnly to the depositing address or its registered allowlist. No fee.

What stays visible

live
  • That you deposited to the vault, and how much
  • That you withdrew, and how much
  • The vault's aggregate book at any moment
  • Every trade the vault makes — not who asked for it
  • The chain's sequencer sees transactions before ordering
  • In Phase 0, the relayer sees intent authorship

Anyone claiming a public blockchain can hide more than this without a proof system is selling something.

Batching and timing

planned

Without batching the product is trivially broken: a deposit of a distinctive size followed by a vault trade of the same size seconds later needs no cryptanalysis. Five defences run from day one: randomised release windows, grouped execution that does not map 1:1 to intents, standard deposit denominations, a minimum dwell between deposit and first trade, and a warning in the app when an amount is distinctive.

The app publishes the live anonymity set and the median batch size. Below four intents per batch the privacy claim weakens and the desk says so before you submit.

The print

planned

A print is a signed statement about one closed position: the asset, entry and exit in percentage terms, hold duration, a Merkle proof against vault state, and the release time the owner chose before opening. It does not contain the address, the balance, other positions, or any link to another print unless the owner links them under a pseudonym.

Delays: 1 hour, 24 hours, 7 days, never. “Never” is visible on the tape, and a pseudonym's print rate is shown beside its returns.

Viewing key

planned

Derived in the browser from the user's signature and never transmitted. It reveals that user's notes and nothing else. Hand it to an accountant, a counterparty, or nobody. Rotate notes to revoke it.

The verify reader at /verify resolves a key into a signed statement checked against on-chain vault state.

Trust model by phase

live
Phase 0The on-chain link is broken. The relayer knows which intent came from which session; it cannot move funds to anyone you did not register. It CAN refuse to sign your withdrawal — the 30-day escape hatch covers a relayer that goes silent, not one that stays live and refuses. Caps bound that exposure. Stated before the first deposit.
Phase 5Intents carry a zero-knowledge ownership proof and a nullifier. The relayer orders traffic it cannot read. Migration is voluntary.

$PRINT

planned

1,000,000,000 supply, 100% fair launch on the chain's launchpad, no team allocation, no mint function. Launches only after the vault's external audit report is published.

Staking buys capacity: shielded balance cap, registered withdrawal addresses, priority inside a batch, limit orders, scheduled prints, API limits. It never buys a fee discount and never buys a larger anonymity set.

OPEN · 05 ETH cap · 1 address · market intents
DESK · 250k25 ETH cap · 2 addresses · limit orders
FLOOR · 1M100 ETH cap · 3 addresses · batch priority · scheduled prints
HOUSE · 5Mno cap · 5 addresses · raised API limits · programmatic intents

Fees and burns

planned

0.25% of notional on every executed intent, charged inside the vault at execution in the input asset, identical for every tier, printed in the quote before submission.

60%swapped to $PRINT on Robinhood Chain and burned weekly; every burn posted with its hash
25%treasury: audit, circuit, relayer gas, infrastructure, people
15%incident reserve, balance published; a commitment, not insurance

Not sold, ever: order flow, scanner data, anything derived from what the relayer can see.

Contract

planned

Can: accept deposits and record notes; execute batched swaps against allowlisted pools; release withdrawals to registered addresses; record print commitments.

Cannot, by absence: no owner, admin, pause or upgrade proxy; no sweep or fee-recipient change; no path moving value to a non-registered address; no way to alter a committed release time. The pool allowlist is immutable at deploy.

Before the execution path is designed: fork-test the chain's pool hooks for fee redirection and contract-initiated swaps, and measure slippage at batch sizes.

The scanner

live

Free, no wallet, public data only, at /scan. Paste an address and read how many addresses repeatedly bought the same tokens from the same pool within five minutes of you, their median lag, how many of their fills landed within 60 seconds, and which of your positions was copied hardest. Clean results are reported as clean.

DataERC-20 transfer records on Robinhood Chain, read through a transfer index. Nothing private, nothing that needs a wallet.
Followeran address that received the same token from the same pool you bought from, within 3,000 blocks (~5 min at 0.1 s/block) of your own fill, for 3 or more different tokens
Excludedevery address you have traded with directly — pools, routers, counterparties — so LPs do not show up as followers
Scopeyour last 1,000 incoming transfers, following up on your 40 most recent acquisitions
Storagenone. Results are cached in memory for ten minutes and never written to disk
Limits6 scans per minute per IP; a scan of a heavy address takes up to ~15 s

It is a pattern on public data, not proof of intent. A very active trader can coincide with you by chance. Read it as a prompt to look, not as a verdict.

Status page

live

/status reads the chain when it renders (at most a minute old) and prints the vault's address, relayer, ETH held, deposits outstanding, note / batch / print counts, time since the last batch, the reserve and bounty wallet balances, and the burn ledger. Nothing on it is typed by hand; zeros are shown as zeros.

Incident reserve

partial

15% of every fee goes to a published address whose balance is shown on /status. If the vault is ever drained by a defect in our code, this fund pays depositors first, pro rata, before anything else. It is small, it will not cover a worst case, and it is a commitment rather than insurance — the number on /status is the whole promise.

The address is published before any fee exists so that it can be watched from day one.

Bug bounty

partial

Scope: Vault v0 at the address published on /status (and its source in the public repository), plus this site. Rewards are paid in ETH from the bounty wallet on /status; the pool balance is the ceiling.

Criticalvalue leaves the vault to an unregistered address, or the same-owner rule is bypassed in any way — up to 100% of the pool
Highfunds can be frozen with no escape, a batch can be executed by a non-relayer, a pool outside the allowlist can be traded — up to 40% of the pool
Mediumattestation replay, accounting drift between depositsOutstanding and reality, denial of the escape hatch — up to 15% of the pool
Out of scoperelayer misallocation between depositors and a live relayer refusing to sign withdrawals (both are the documented Phase 0 trust — the escape hatch covers a relayer that goes silent, not one that refuses), gas griefing, price impact on thin pools, typos
  • Report privately first: a direct message to the project account on X, or a private security advisory on the repository once it is public.
  • Prove it on a fork or with a capped mainnet amount you own; do not drain other depositors to demonstrate.
  • First valid report wins. We confirm within 72 hours and pay when the fix ships or within 30 days, whichever is first.
  • Anyone, anywhere, no KYC — the payout is on-chain to the address you report from.

Roadmap

live
1 · nowProve the execution path on a fork; vault v0 with no admin surface; adversarial timing test
2Landing, docs, honesty page; the scanner; the tape seeded with labelled testnet prints
3External audit, report published in full; mainnet with low caps; prints and the verify reader
4$PRINT fair launch; staking; burn ledger from the first week
5Zero-knowledge circuit; the relayer goes blind; voluntary migration
6Limit orders in the vault; verify API; Scanner Pro; programmatic intents

Risks

live
  • The vault holds funds; an audit reduces risk and does not remove it
  • Privacy is weak until the anonymity set is large
  • Thin chain liquidity means visible slippage on vault trades
  • The sequencer sees flow before ordering
  • Phase 0 trusts the relayer not to log; Phase 5 replaces that with cryptography