Questions before
the first note.
Short answers. Each one links to the page with the long version.
Basics
#What actually moves when I transfer a note?
The ERC-721 token. The underlying ERC-20 balance stays in the vault until someone claims. Lifecycle → Carry
Is a note the same as the tokens?
No. It is a claim on exactly the deposited amount of one token, redeemable by whoever holds the note. Concepts
Can one note hold several tokens?
No. One note, one token, one amount. Wrap again for another position.
Does it cost anything?
Only gas. The vault takes no fee on wrap, transfer or claim.
Terms & claiming
#Does the term lock my tokens?
No. The term is stored as a maturity date and displayed, but claim never checks it. Any live note can be claimed immediately. The term
Then what is the term for?
Disclosure. It tells a counterparty, an allocation reviewer or an access gate what horizon the depositor committed to on paper. Anything that needs an enforced lock must add its own escrow.
Which term values are valid?
0 (instant) or 1 to 3650 days. Anything else reverts with Vellum: invalid term.
Who can claim?
Only the current owner of the note. Approved operators can transfer it but cannot claim. claim()
Can I claim part of a note?
No. Claiming releases the full amount and burns the note.
What happens after a claim?
The note id is burned forever, isClaimable returns false and positions(id).claimed is true.
Transfers
#How do I transfer a note?
With any NFT-capable wallet or marketplace — it is a standard ERC-721 on the vault contract (collection "Vellum Note", symbol VNOTE). The app itself has no transfer screen. Using the app
How do I check what I am buying?
Read positions(id) on the explorer: token address, amount, maturity, claimed. Also read isClaimable(id). Holder checklist
Can the original depositor take it back?
No. The vault does not record who wrapped a note. Once transferred, the previous holder has no rights.
What if I send a note to a contract?
Use safeTransferFrom so contracts without the receiver hook reject it. A contract that cannot call claim strands the note and its balance.
Tokens
#Which tokens can be wrapped?
Any standard ERC-20 whose transfer moves exactly the requested amount. Fee-on-transfer tokens are rejected at wrap; rebasing tokens should not be used. Token assumptions
Why did my wrap fail with "unsupported token transfer"?
The vault received less than the amount you specified — usually a transfer fee. The transaction reverted and nothing was deposited.
Are $CASHCAT, $PONS and $IF real?
On Robinhood Chain, yes — the pills carry their real addresses and show live prices. On other networks they are address-less showcase presets. Listed tokens
Where does the entry mark come from?
From DexScreener, via the site's /api/price route: the best-liquidity pair for that token on the target chain, refreshed every 30 seconds. It is not stored onchain. Price feed
Trust & control
#Who controls the vault?
A guardian address that can pause new wraps and hand its role to a successor. It cannot move tokens, edit notes or block claims. Guardian scope
Can the contract be upgraded?
No. There is no proxy, no delegatecall and no selfdestruct. The build's verify step fails if any of those words appear in the source.
Has it been audited?
Not formally. It is ~200 lines, covered by static invariants (npm run verify:vault) and 27 end-to-end checks on a local node (npm run test:vault). Testing
How do I verify the deployed address is the real contract?
Compare bytecode with the generated artifact and read guardian(), name(), MIN_TERM(). Verifying a deployment
The app
#Why does the button say "Vault required"?
No vault address is configured for this build. Set NEXT_PUBLIC_VELLUM_ROBINHOOD_VAULT_ADDRESS or use the admin override. Vault address resolution
Which network does the app use?
Robinhood Chain (id 4663). It switches or adds the network in your wallet when you send the first transaction.
Where is the list of my notes?
The app does not index notes. Use the explorer's NFT view for the vault, or scan Transfer events. Indexing
Why two wallet prompts on wrap?
An ERC-20 approve for the exact amount, then wrap. If the allowance already covers the amount you get only one.