Skip to content
Tills

How Tills works

Tills sends a Pons coin's creator fees to a website that takes Stripe. Traders pay those fees in USDG, Pons credits them to a vault reserved for that coin, and Tills splits each claim: 80% for the website, paid as dollars or stablecoins, and 20% to buy and burn $TILL. The creator names a domain, and the domain's owner collects after proving it.

  1. 1

    Fees arrive as dollars

    Tills coins pair against USDG on Pons, so traders pay creator fees in a dollar stablecoin. The website's share keeps its dollar value whatever the coin's price does next.

  2. 2

    One coin, one vault

    Each coin names its own fee vault as its Pons creator fee recipient. The Pons escrow credits that vault alone, so the vault's balance equals the coin's fees and no one has to divide a shared pot.

  3. 3

    Stripe needs USDC

    Fees arrive as USDG on Robinhood Chain, and Stripe accepts USDC. For banks, Stripe balances and USDC wallets, Across fills each batch as USDC on another chain.

  4. 4

    The owner proves the domain

    Anyone can type a domain into a launch form, and typing it proves nothing. Tills holds the website's share as owed until the owner publishes a DNS record or a file and picks where the money goes.

  5. 5

    On-chain receipts

    TillsHub records each coin, claim and payout on Robinhood Chain. A payout counts as Delivered once the money reaches its destination and Tills records it on the hub with a reference to the Stripe payout or the transfer.

Overview

Tills turns a coin's creator fees into income for a real website. You launch a coin on Pons, Robinhood Chain's launchpad, and name a domain. After launch, the coin's fees travel to that website through three stages: Fees, Sending and Delivered.

  1. 1

    Launch on Pons

    Your wallet calls the Pons factory to create the coin with USDG as its pair asset. The same call makes the coin's Tills vault its creator fee recipient.

  2. 2

    Name a website

    You enter a domain such as example.com. The website does not need to know Tills exists.

  3. 3

    Collect

    At least twice a day Tills calls collect on TillsHub. Each vault sweeps its coin's fees, claims them from the Pons escrow and forwards them to the Tills payout wallet.

  4. 4

    Split

    The hub books 80% of each claim to the website and 20% to the $TILL buyback and burn. See The split.

  5. 5

    Send and deliver

    Once a day Tills batches each verified website's share and bridges it out as USDC with Across, unless the owner takes USDG on Robinhood Chain. The money reaches the bank, Stripe balance or wallet the owner chose, and the hub records the payout.

An unclaimed website keeps earning: Tills holds its share as owed, in USDG, until the owner proves the domain. See Claiming payouts.

Tills has not deployed its hub contract or $TILL yet. Both launch soon, and totals show zero until coins route fees through the hub. See Before payouts run.

Robinhood Chain

Tills runs on Robinhood Chain, an EVM network with chain id 4663. You pay gas in ETH, and blocks come about 0.1 seconds apart. Tills collects fees there in USDG and bridges website payouts out as USDC, except for owners paid in USDG on the chain itself.

Network
Robinhood Chain mainnet. Chain id 4663, CAIP-2 id eip155:4663, gas in ETH.
Explorer
robinhoodchain.blockscout.com. Open a transaction at /tx/<hash>, an address at /address/<addr> and a token at /token/<addr>.
Public RPC
https://rpc.mainnet.chain.robinhood.com. It rate-limits callers and keeps no archive: state reads older than about 5,000 blocks return errors, and eth_getLogs takes ranges of up to 100,000 blocks.
USDG
Paxos Global Dollar at 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168, with 6 decimals. One USDG is 1,000,000 base units. Coins launched through Tills pay their fees in it.
Routes out
Across bridges USDG from Robinhood Chain to USDC on Ethereum (1), Optimism (10), Polygon (137), Arbitrum (42161) and more. Check the live route list before you pick a payout chain.

Add Robinhood Chain to your wallet before you launch. The network settings are under Wallets and login.

Pons, the launchpad

Pons v2 is the launchpad under each Tills coin. A launch opens on a bonding curve that holds the entire supply. Once buyers take the last sellable token, the launch graduates into a Uniswap v4 pool, and Pons locks that pool's liquidity for good.

Tills adds two contracts beside Pons, one fee vault per coin and one hub that keeps the books, and leaves trading to Pons.

Launch config 0
The live config mints 1 billion tokens with 18 decimals to the curve and charges a 1% trade fee (curveFeeBps 100). After graduation the pool charges no fee of its own (poolFee 0), and the Pons hook charges the trade fee instead. Tick spacing is 200.
USDG economics
A USDG launch opens with a phantom reserve of 3,236 USDG and graduates once the curve has raised 8,090 USDG. Pons holds back two sevenths of the supply, about 285.7 million tokens, to seed the pool.
Launch fee
0.0005 ETH, sent as value with the launch. Public launches are open, so canLaunch returns true for your wallet.
Fee path
Traders pay the fee in the pair asset, USDG for Tills launches. Pons takes its protocol share off the top. The creator fee recipient receives the rest plus the whole creator tax, and on Tills that recipient is the coin's vault. getLaunchFeePolicy(token) on the factory shows the division for any coin.
Sweeps
Fees accrue on the curve before graduation and on the meme hook after it. A sweep carries them to the Pons fee escrow: sweepFees on the curve, sweepPoolFees on the hook. The vault runs these sweeps itself, and Pons reserves sweeps that convert launch-token fees into USDG for its own operator.
Snipe tax
Each launch opens with a 99% tax on buys that decays to zero over the first 5 seconds. Pons exempts the launching wallet and the creator fee recipient, and the launch-and-buy router exempts your dev buy.

Pons keeps one override over any creator fee recipient. For a coin whose creator has walked away, Pons can propose a new recipient. Anyone can execute the proposal after three days, it expires three days after that, and pendingCreatorFeeRecipient(token) shows it during the wait.

The website field

Tills ties a coin's payouts to one bare domain. The hub hashes that domain into the coin's id and into the key of the website's ledger.

Input
Paste a full URL if you like. Tills keeps the hostname, lowercases it and drops a leading www., so https://www.Example.com:443/shop?ref=x#top turns into example.com.
Accepted names
Lowercase letters, digits, hyphens and dots, with at least one dot. Each label runs from 1 to 63 characters, the name cannot start or end with a hyphen or a dot, and the whole name fits in 253 characters. The hub's register rejects anything else.
Domain hash
The hub keys each website by keccak256 of its domain. Two coins that name example.com share one ledger line, and coinsOfDomain(domainHash) lists both.

Check the domain before you sign. The hub books the coin's fees to the domain you typed, and neither you nor Tills can change it after launch.

From fees to the website

Tills tracks a coin's money in three stages and shows them on coin and website pages: Fees, Sending, Delivered. A website without a verified owner sits in a fourth state, Owed. Each step below is a call to Pons, TillsHub, Across or Stripe, and you can check the reference each one leaves.

Stage 1, Fees. Traders pay fees on Robinhood Chain, and the coin's vault collects them.

  1. 1

    Reserve the vault

    Before the launch, the app derives the coin id from the domain, your wallet and a nonce, and predictVault(coinId) returns the vault's address. CREATE2 fixes that address before any code lives there.

  2. 2

    Launch

    Your wallet sends launchToken to the Pons factory. The call pairs the coin with USDG and names the predicted vault as creatorFeeRecipient.

  3. 3

    Register

    The app calls register(domain, creator, nonce, token). The hub checks the Pons record, deploys the vault, stores the coin and emits CoinRegistered.

  4. 4

    Accrue

    Traders pay each fee in USDG. Fees build up on the curve, or on the meme hook after graduation, until a sweep moves them to the Pons escrow.

  5. 5

    Collect

    Tills calls collect(coinIds) at least twice a day, and any wallet may call it in between: the coin page has a Collect now button. Each vault tries a sweep, claims its USDG from the escrow and forwards the whole balance to the payout wallet.

  6. 6

    Book

    The hub adds the claim to collected(coinId, USDG), books 80% to the website's accrued line and 20% to the buyback, and emits Collected.

Stage 2, Sending. The website's share heads out, as USDC for a bank, Stripe or a USDC wallet.

  1. 1

    Batch

    Once a day, Tills gathers each verified website's owed USDG into one batch. Tills holds a batch under 5 USDG until later claims lift it over the minimum.

  2. 2

    Quote

    Across quotes its fee and the USDC output before the payout wallet signs anything.

  3. 3

    Bridge

    The payout wallet deposits the batch with Across, and a relayer fills it as USDC on the destination chain in seconds.

  4. 4

    Route

    A USDC wallet receives the fill on the chain its owner named. For a bank or a Stripe balance, the USDC lands in the Tills Stripe account that funds Global Payouts. A USDG wallet skips the bridge and gets a plain transfer on Robinhood Chain.

Stage 3, Delivered. The money reaches the destination the owner chose, and the hub records a receipt.

  1. 1

    Bank

    Stripe Global Payouts sends the amount to the bank account the owner added in the Stripe form. Stripe sets the arrival time, which depends on the country and the bank.

  2. 2

    Stripe balance

    The same Global Payouts route credits the website's Stripe balance in place of a bank.

  3. 3

    Wallet

    USDC arrives from the Across fill, and USDG arrives by transfer. Neither route touches Stripe.

  4. 4

    Receipt

    Tills calls recordPayout(domainHash, asset, amount, method, ref, memo) on the hub. ref points to the Stripe payout or the transfer, memo carries the payment note, and the hub emits Paid.

TILLS PAYOUT RECORD                             SPECIMEN
coin      EXAMPLE, launched on Pons, paired with USDG
website   example.com, method 0 (bank)

FEES      Robinhood Chain, chain id 4663
  call    hub.collect([coinId])                   tx 0x…
  sweep   vault -> curve.sweepFees(0)
  claim   vault -> escrow.claimToken(USDG)
  forward vault -> payout wallet             100.00 USDG
  book    Collected: website 80.00, buyback 20.00

SENDING   Across, USDG in and USDC out
  quote   80.00 USDG in, 79.94 USDC out
  bridge  Across deposit 0x…                  79.94 USDC
  credit  Tills Stripe account                79.94 USDC

DELIVERED Stripe Global Payouts
  payout  bank account ending 6789                $79.94
  record  hub.recordPayout(domainHash, USDG, 80.00, 0,
          ref, "Creator fees via Tills")          tx 0x…
  owed    example.com: 0.00 USDG
Specimen. One bank payout from a 100.00 USDG claim, with illustrative figures.

A claim confirms in seconds, and so does an Across fill. Wallets see their money minutes after the daily batch; for banks, Stripe sets the arrival time.

Tills takes each batch's costs out of the batch: Robinhood Chain gas, the Across fee, and Stripe's payout or currency charges where they apply. Below 5 USDG those costs would take most of the transfer, so Tills waits.

Tills writes down each step's reference before it moves on, and it resumes a crashed run from the last saved reference. The hub backs this up on-chain: recordPayout reverts once recorded payouts would pass the website's accrued total. If no relayer fills a deposit, Across refunds the payout wallet. A bank payout that bounces lands back in the Tills Stripe account.

Claiming payouts

A website does not sign up in advance. Tills holds its share as owed, in USDG in the payout wallet, until the owner proves control of the domain and picks a destination. Without that proof, anyone could type a domain and ask for its money.

  1. 1

    Get your code

    Open your site's page on Tills and start the claim. Tills shows a line built for your domain: tills-verification= followed by 24 hex characters. Tills derives the code from your domain with a keyed hash, so a line copied from another site fails the check.

  2. 2

    Publish it

    Add the line as a DNS TXT record on the domain, or serve it in a file at https://<domain>/.well-known/tills.txt. One of the two is enough.

  3. 3

    Pick a destination

    For a bank account or your Stripe balance, fill in the Stripe-hosted form, and Stripe collects and checks the details there. Your bank numbers stay with Stripe. For a wallet, publish a tills-payout line beside the verification line.

  4. 4

    Collect your balance

    Tills sends the full owed balance for your domain in the next daily batch. New claims take the same route with nothing more to do on your side.

; zone example.com, specimen values
@   3600   IN   TXT   "tills-verification=3f9a1c07b2d84e5a6c19f0d2"
@   3600   IN   TXT   "tills-payout=usdc:42161:0x1111111111111111111111111111111111111111"
Specimen DNS records for example.com: the verification line and a USDC payout on Arbitrum.
tills-verification=3f9a1c07b2d84e5a6c19f0d2
tills-payout=usdc:42161:0x1111111111111111111111111111111111111111
The same two lines served at https://example.com/.well-known/tills.txt
USDC wallet line
tills-payout=usdc:<chainId>:<0xaddress>. Tills sends USDC to that address on the chain you name: 1 for Ethereum, 10 for Optimism, 137 for Polygon, 42161 for Arbitrum, or another chain Across serves from Robinhood Chain.
USDG wallet line
tills-payout=usdg:4663:<0xaddress>. Tills sends USDG to that address on Robinhood Chain by plain transfer, with no bridge.
Bank or Stripe balance
No line needed. Use the Stripe-hosted form on your site's page.

Check the address and the chain id before you publish. Tills pays the address and chain your line names, and it cannot recall a payout sent to a wrong address.

x402 and Tills

x402 puts the HTTP status code 402 Payment Required to work. A client asks for a resource, the server replies with a price and payment details, and the client signs a stablecoin payment and asks again. A facilitator settles that payment on-chain.

Tills does not pay websites over x402. An x402 endpoint sells its own resource at its own price, and a fee share is an arbitrary sum owed to a domain. A website that does not know Tills exists has no endpoint that would accept that sum.

A Stripe payout or a wallet transfer can carry any amount, down to the last cent a website has accrued, to the destination its owner picked. x402 moves stablecoins between wallets and leaves the conversion to bank dollars to someone else.

If your site runs an x402 endpoint, claim like any other site. Tills pays through the method you pick and ignores the endpoint.

Methods and owed balances

Each website sits in one of five states, set by what its owner has done. recordPayout takes the method as the number shown in brackets.

Bank (0)
Verify the domain and add a bank account in the Stripe-hosted form. Stripe Global Payouts pays after each daily batch, and the website needs no Stripe account for this route.
Stripe balance (1)
Pick the Stripe balance option in the same form. The money appears in the site's Stripe balance.
USDC wallet (2)
Publish a tills-payout=usdc line on the verified domain. Across fills the wallet on the named chain minutes after the batch, with no Stripe step.
USDG wallet (3)
Publish a tills-payout=usdg line instead. The payout wallet sends USDG on Robinhood Chain, with no bridge and no Stripe step.
Owed
The domain has no verified owner yet. Tills keeps the share in USDG in the payout wallet, owed(domainHash, USDG) gives the total, and the site's page shows it.

Anyone can read a website's books on the hub without a Tills login: websiteAccrued, websitePaid and owed, each keyed by domain hash and asset.

Before payouts run

Tills has not deployed the TillsHub contract or the $TILL token yet. Both launch soon, and each place that would show their addresses reads Launch soon until then. Pons trades on Robinhood Chain today, and Tills needs each item below in place before it moves money for a website.

TillsHub and vaults
Not deployed. Launch soon. Until the hub exists, no coin can register and no claim runs through Tills.
$TILL
Not deployed. Launch soon. Tills cannot buy or burn $TILL before the token exists.
Stripe Global Payouts
Stripe has to approve the operating entity for Global Payouts. Bank and Stripe balance payouts start after that approval. USDC and USDG wallet payouts skip Stripe and can start before that approval.
Money transmission
Regulators treat holding fees for websites and forwarding them as money transmission. In the US that can mean FinCEN registration as a money services business plus state licenses. Counsel decides which ones the operating company must hold before it pays anyone.
Across
Across has to keep its USDG route from Robinhood Chain open. If the route closes, Tills holds batches on Robinhood Chain until it reopens.
Production RPC
The public endpoint rate-limits callers and serves no state older than about 5,000 blocks. Claims, payouts and indexing need a paid RPC provider.
Multisig treasury
A treasury multisig owns the hub. The multisig appoints the operator, sets the payout wallet and hands over ownership in two steps.
Sanctions screening
Each recipient and payout wallet needs a sanctions check before Tills pays it.
Tax reporting
Payouts to websites can trigger tax forms, such as the 1099 series in the US. The operating entity has to file them where they apply.

Payment note

A coin can carry a note of up to 250 characters for the website that receives its fees. Tills saves the note with the coin and prints it on the coin's page.

Stripe shows the note as the payout description. Tills uses a coin's note when a website's payout for the day draws on that coin alone, and the default, Creator fees via Tills, when it draws on several. Tills passes the same text to recordPayout as its memo, so Stripe and the chain show matching notes.

Write the note for the site's owner, the person who reads the payout. For example: From the EXAMPLE holders, for your server bill.

The split

One rule covers all coins: the hub gives 80% of a claim to the website and 20% to the $TILL buy and burn. The hub does the math on-chain as it books the claim, so anyone can check it against the Collected event.

80% to the website
Tills sends it to the destination the owner picked, or keeps it as owed while the domain has no verified owner. The hub adds amount * 8000 / 10000 to the website's accrued line.
20% to buy and burn
Tills spends it on $TILL and sends the tokens to the burn address. The hub books the remainder of each claim, rounding dust included, to buybackAccrued. See Burning $TILL.
claim     12.345678 USDG = 12,345,678 base units
website   12,345,678 * 8000 / 10000 = 9,876,542  ->  9.876542 USDG
buyback   12,345,678 - 9,876,542    = 2,469,136  ->  2.469136 USDG
Specimen. The hub's rounding on a claim of 12.345678 USDG.

The creator tax joins the split. Pons pays the whole creator tax to the creator fee recipient, the coin's vault, so the hub splits it 80/20 with the rest of the fees.

Schedule

Pons holds each coin's fees on the curve or the hook until a sweep. Tills runs collect over the registered coins at least twice a day, and the ledger lists each claim beside its Robinhood Chain transaction hash and the 80/20 amounts.

collect is permissionless. Press Collect now on a coin page, or call it yourself with a list of coin ids. The fees go to the same payout wallet, and the hub books them the same way.

Claims
At least twice a day for every coin, or sooner when any wallet presses Collect now.
Payout batches
Once a day per website, for sites that have claimed.
Minimum payout
5 USDG. Below that line, gas and the Across fee would take a large bite of the transfer, so Tills holds the share until more claims push it past 5 USDG.
Owed shares
No batch until the owner claims. Tills pays the whole owed balance in the first daily batch after the claim.

Launching a coin

Connect a wallet on the Launch page and fill in the form. Pons credits the coin's fees to its vault from the opening trade, and Tills passes the website's share on.

Website
Required. The domain that gets 80% of each claim. Choose one from the directory or type your own.
Name
Required. Up to 32 characters.
Ticker
Required. Up to 10 letters or digits.
Image
Optional. Tills pins it to IPFS when you launch, and Pons stores the link on the token.
Description
Optional. Pons stores it on the token, and Tills shows it on the coin's page.
Socials
Optional links for X, Telegram and Discord. Pons stores them with the token's details.
Payment note
Optional, up to 250 characters. Stripe shows it on payouts that come from this coin alone. See Payment note.
Creator tax
0% to 10%. Traders pay it on each trade on top of the Pons fee, and all of it goes to the vault, so the website receives 80% of it. Pons fixes the rate at launch, and no one can raise it after that.
Dev buy
Optional. The Pons launch-and-buy router buys your coin inside the launch transaction, before anyone else can trade and free of the opening snipe tax. Before the launch, your wallet approves USDG for the router.
Fee vault
Set for you. The app puts the coin's vault in creatorFeeRecipient. Fees sent to another address stay outside the hub's books, and Tills cannot pay them out.

A launch costs the 0.0005 ETH Pons launch fee plus gas and takes two transactions: the Pons launch and, once it confirms, the hub's register call. If register fails, anyone can send it again, because the function is permissionless.

Registering an existing coin

You can point a coin that trades on Pons today at a website. Its current creator fee recipient hands that role to a Tills vault, and the hub registers the coin.

  1. 1

    Get the vault address

    On Launch, switch to registering an existing coin and enter the domain and the token address. The app picks a nonce, computes the coin id from the domain, your wallet and that nonce, and shows the vault address from predictVault(coinId).

  2. 2

    Hand over the fees

    Sign transferCreatorFeeRecipient(token, vault) on the Pons factory with the wallet that holds the creator fee recipient role today. Pons applies the change at once, on the curve or in the pool, and moves the buyback vest beneficiary with it.

  3. 3

    Register

    Call register(domain, creator, nonce, token) on TillsHub. The hub confirms that Pons knows the token and that its creator fee recipient equals the predicted vault. Then it deploys the vault if needed, stores the coin and emits CoinRegistered.

Claim what the Pons escrow holds for you before the transfer. Pons sends future fees to the vault and leaves balances credited before the change with the old recipient.

The handover is one-way under Tills contracts. The vault has no function that calls transferCreatorFeeRecipient, so neither you nor Tills can point the fees elsewhere. The Pons takeover process is the one exception, covered under Pons, the launchpad.

You register a coin paired against ETH the same way. Its vault claims ETH from the escrow with claim(), and the hub books it on an ETH line of its own, apart from USDG.

Wallets and login

You need a wallet to launch or register a coin. Robinhood Chain runs the EVM, so the wallet you use on Ethereum can sign here. Browsing Tills and claiming a website need no wallet.

Login
Privy handles sign-in with your wallet. Email, SMS and social logins are off.
Supported wallets
EVM wallets. A wallet built for a non-EVM chain cannot sign on Robinhood Chain.
Gas
You pay gas in ETH on Robinhood Chain. A launch needs ETH for gas plus the 0.0005 ETH Pons launch fee.
USDG
A dev buy spends USDG, so bridge or buy USDG on Robinhood Chain before you launch.
Network name     Robinhood Chain
Chain ID         4663
Currency symbol  ETH
RPC URL          https://rpc.mainnet.chain.robinhood.com
Explorer         https://robinhoodchain.blockscout.com
Network settings for adding Robinhood Chain to your wallet.

Tills does not ask for a seed phrase or a private key. Treat anyone who asks for one in the name of Tills as a scammer.

Burning $TILL

A fifth of each claim goes to $TILL. Tills buys $TILL with that USDG on Robinhood Chain and sends what it buys to the burn address.

The operator records each round with recordBuyback(asset, spent, tillBurned, ref). The call takes the USDG spent, the $TILL burned and a reference to the buy, reverts if the spend would pass the booked buyback share, and emits BuybackBurned.

Token
Launch soon. Tills has not deployed the $TILL contract yet.
Source
The 20% share of each claim, held in USDG until the next buy.
Books
buybackAccrued(asset) counts the 20% shares booked so far, and buybackSpent(asset) counts what Tills has spent. Tills holds the difference for the next buy.
Burned
tillBurned() on the hub returns the running total, and each BuybackBurned event shows one round.

The Tills burn is separate from the Pons buyback option. That option spends part of a creator's share on the coin's own token and vests it over five years. The Tills burn buys $TILL and destroys it.

Limits and costs

Split
Website 80%, $TILL buy and burn 20%.
Minimum payout
5 USDG per website per batch. Tills carries smaller shares into later batches.
Payment note
Up to 250 characters. Default Creator fees via Tills.
Name and ticker
Name up to 32 characters. Ticker up to 10 letters or digits.
Creator tax
0% to 10%, capped by Pons at maxCreatorTaxBps 1000.
Pons trade fee
1% on launch config 0. Pons keeps its protocol share and credits the rest to the vault.
Pons launch fee
0.0005 ETH per launch.
Gas
You pay gas in ETH for launches and registrations. Gas for payouts comes out of each batch.
Bridge fee
Across quotes its fee before each deposit and keeps it out of the USDC it delivers.
Stripe fees
Stripe charges for payouts and currency conversion on the owner's method, and Tills deducts that charge from the payout.

Contracts

Tills adds two contracts to Robinhood Chain. TillsHub keeps the registry and the books, and each coin gets a TillVault of its own. Both are Solidity 0.8.28 with no outside libraries beyond minimal interfaces, and a treasury multisig owns the hub. Neither contract is on-chain yet.

coinIdOf(domain, creator, nonce)
Pure; returns the coin id, keccak256(abi.encode(keccak256(bytes(domain)), creator, nonce)).
predictVault(coinId)
View; returns the vault's CREATE2 address, with the coin id as salt and the TillVault creation code plus abi.encode(hub) as init code.
register(domain, creator, nonce, token)
Permissionless; checks the domain and the Pons record, deploys the vault if missing, stores the coin and emits CoinRegistered.
collect(coinIds)
Permissionless and non-reentrant; has each coin's vault sweep, claim and forward its fees to the payout wallet, books the 80/20 split and emits Collected.
recordPayout(domainHash, asset, amount, method, ref, memo)
onlyOperator; records a payout up to the website's accrued amount and emits Paid (methods: 0 bank, 1 Stripe balance, 2 USDC wallet, 3 USDG wallet).
recordBuyback(asset, spent, tillBurned, ref)
onlyOperator; records a buyback up to the booked buyback share and emits BuybackBurned.
Registry views
coinCount(), coinIdAt(i), getCoin(coinId), coinIdOfToken(token) and coinsOfDomain(domainHash).
Ledger views
collected(coinId, asset), websiteAccrued(domainHash, asset), websitePaid(domainHash, asset), owed(domainHash, asset), buybackAccrued(asset), buybackSpent(asset), tillBurned() and totalCollected(asset).
Admin
Two-step ownership transfer, setOperator and setPayoutWallet, all in the hands of the treasury multisig.
TillVault
An immutable hub, a receive() for ETH, and onlyHub functions collect and forward(token, to), the second for stray ERC-20s; no function in it can change its coin's Pons fee recipient.
import { createPublicClient, http, keccak256, parseAbi, toBytes } from "viem";

const HUB = "0x…"; // TillsHub: launch soon
const USDG = "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168";

const client = createPublicClient({
  transport: http("https://rpc.mainnet.chain.robinhood.com"),
});

const owed = await client.readContract({
  address: HUB,
  abi: parseAbi(["function owed(bytes32 domainHash, address asset) view returns (uint256)"]),
  functionName: "owed",
  args: [keccak256(toBytes("example.com")), USDG],
});

// USDG has 6 decimals: 79940000n reads as 79.94 USDG.
Reading a website's owed USDG from the hub once Tills deploys it.

Addresses on Robinhood Chain. Open any of them at https://robinhoodchain.blockscout.com/address/<addr>.

TillsHub
Launch soon.
$TILL
Launch soon.
USDG
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168
WETH
0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73
Pons factory
0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
Pons meme hook
0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044
Pons fee escrow
0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e
Pons buyback vault
0x42df2a798f82289E177311362e8f5ccC45c1219c
Pons launch locker
0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952
Pons launch and buy router
0xe33E9E479dF8802cb0866d5d05258bEc4cF62948
Pons launch deployer
0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42

Terms

The wallet that controls a coin's creator fees decides whether to send them to a Tills vault. If you launch through Tills or register a coin and name a website, you instruct Tills to claim those fees, split them and pay them as these docs describe.

Under Tills contracts the handover is permanent, and the domain you name stays part of the coin's id.

You use the site and the contracts at your own risk and without warranty. Tills does not control Robinhood Chain, Pons, Across or Stripe, and it cannot make a website's owner claim, so a payout can stall at any of those points.

Tills gives no investment advice, and $TILL carries no promise of profit. Any coin, $TILL included, can lose all of its value.

Disclosures

Stripe, Robinhood, Paxos, Pons and Across have no affiliation with Tills, and none of them endorses or sponsors it. Their names and marks, including Robinhood Chain and USDG, belong to their owners.

Tills lists a real business in its directory when public sources, such as a Stripe customer story or Stripe code on the site, show that it takes Stripe payments. No listed business has opted in to Tills, and a listing says nothing about whether its owner knows about a coin.

Totals show zero until Tills deploys the hub and coins route fees through it. Tills shows no invented launches, claims, payouts or burns, and each piece of example material carries a Specimen label.

Pons v2 is under review by SB Security, Dingbats and Pashov Audit Group, and no audit has closed. Pons tells you to treat v2 as unaudited, and Tills inherits that risk.