Contracts

The contracts behind every Vectr token.

Six verified contracts on Robinhood Chain. No proxies, no upgrade keys, graduated liquidity locked for good.

VectrFactory0xb2f2…7873VectrToken0x688a…af86VectrBondingCurve0x0f3d…4ac0VectrFeeCollector0x18c5…8908VectrUniswapMigrator0x384e…f837Creator0.30% accruesPlatform0.67% pushedUniswap V31.00% poolVectrLPLocker0xcf48…2b58fee per swapgraduatelaunchToken()clonebuy() / sell() by anyoneposition NFTno transfer, no burn, no withdraw
Source verified
6 of 6
Wiring checks
11 of 11
Factory launches
5
Chain id
4663

Read from Robinhood Chain at block 110,888,722. Refreshed every minute by the API; the page re-renders on the same cadence.

Six contracts, one launch path

Addresses come from the API's live registry, the same payload every Vectr surface reads. Names, compiler and proxy status are what the explorer reports for each address.

Launch

Everything starts with one factory call.

VectrFactory

singletonowned

Entry point for every launch

0xb2f232389a4ee9285ceee5e7c1706a0484437873

One call deploys a token and its bonding curve as EIP-1167 clones, wires both to the collector and the migrator, and can fill the creator's first buy in the same transaction so nobody front-runs a launch.

  • Whitelist pairing assets and set their curve parameters
  • Move a curve's graduation threshold
  • Point future launches at new implementations, collector, migrator or claim oracle
  • Change the code of a token or curve that already exists
Factory launches
5
Pairing assets
198

live at block 110,888,722

Source verified as VectrFactory
solc 0.8.24, shanghai, no proxy, 12.5 KB

Cloned for every token

Each launch gets its own pair of EIP-1167 clones of these two implementations. Same code, separate state, initialized once.

VectrToken

clone targetfixed supply

ERC-20, cloned once per launch

0x688aca157fb856397f843e1c68f52b59da60af86

The fixed 1B supply is minted to the curve at initialization: the curve sells 800M and holds 200M back for the graduation LP. There is no mint, no burn and no owner. The fee recipient starts as the launcher and can be switched a single time by the claim oracle once the subject verifies their X account.

Total supply
1,000,000,000
On the curve
800,000,000
Reserved for LP
200,000,000
Source verified as VectrToken
solc 0.8.24, shanghai, no proxy, 7.3 KB

VectrBondingCurve

clone targetno pause path

Constant-product market, cloned once per launch

0x0f3d1edc698960076fe4f40893f1527311db4ac0

Holds the raise, prices every swap against virtual reserves and routes the fee split on each trade. The buy that reaches the graduation threshold triggers migration in the same transaction. It ships with a pause switch, but its owner is the factory and the factory has no function to flip it, so no key can pause a live curve.

Virtual tokens
1,073,000,191
Swap fee
0.97%
Pricing
x · y = k
Source verified as VectrBondingCurve
solc 0.8.24, shanghai, no proxy, 16.3 KB

Fees

Rates live in one place and are read on every trade.

VectrFeeCollector

singletonrate cap on-chain

Fee rates and routing for every curve

0x18c547ae4ceabc7cb42a189ea3e9037090e98908

Every curve reads its rates here on each trade. The creator share accrues per creator in the pairing asset and is claimable any time. The platform share is pushed to the platform wallets inside the same transaction and never sits in this contract.

  • Change the creator and platform rates, never above 5.00% combined
  • Add, remove or reweight platform wallets
  • Sweep tokens sent here by mistake, never creators' accrued balance
Creator
0.30% per swap
Platform
0.67% per swap
Hard cap
5.00%
Platform wallets
0xe820…642e 40%

live at block 110,888,722

Source verified as VectrFeeCollector
solc 0.8.24, shanghai, no proxy, 13.7 KB

Graduation

The raise becomes a Uniswap position that nobody can pull.

VectrUniswapMigrator

singletonimmutable wiring

Turns a graduated curve into a Uniswap V3 pool

0x384eed2ba540146fb09e4ee228b454091913f837

Called by the curve at graduation. Wraps the raise to WETH, creates the pool at the curve's closing price, corrects it if someone pre-created the pool at a bogus price, and mints one full-range position straight into the locker.

  • Change the fee tier for pools created from now on
Pool fee tier
1.00%
Uniswap factory
0x1f7d…2efa
Position manager
0x7399…e0d3

live at block 110,888,722

Source verified as VectrUniswapMigrator
solc 0.8.24, shanghai, no proxy, 14.3 KB

VectrLPLocker

singletonno owner

Permanent home of every graduated position

0xcf489e55a1167cf883e0ee43d2354fdfc82b2b58

The position NFT is minted straight here. No function transfers, approves, burns or decreases it, so the liquidity can never leave the pool. Anyone can call collect(): the swap fees the position earns go to the platform wallets.

  • Withdraw or move a locked position, including the deployer
Positions locked
0
Earns
1.00% of pool volume
Fees go to
platform wallets

live at block 110,888,722

Source verified as VectrLPLocker
solc 0.8.24, shanghai, no proxy, 6.8 KB

Every pointer, read back from the chain

The contracts reference each other through immutable getters. The API calls each one every minute and compares the answer with the address it serves. All of them match.

cast call 0xb2f232389a4ee9285ceee5e7c1706a0484437873 "feeCollector()(address)" --rpc-url https://rpc.mainnet.chain.robinhood.com

What the platform keys can do

Three wallets act on the protocol. Each one's reach is bounded by the contracts, not by policy. The owner and the subscription treasury are the same wallet today.

Holds the admin functions listed on each card above. It cannot upgrade a contract, move a locked position or touch creator balances.

Claim oracle

Backend signer. Its only power is setFeeRecipient() on a token, once, after the subject proves they own the X account the token is dedicated to.

Subscription treasury

Receives Pro subscription payments. The backend verifies them on-chain; nothing about the protocol depends on it.

Graduation lands on Uniswap V3

The canonical Uniswap deployment on Robinhood Chain. Every graduated token trades in a 1.00% pool created by the migrator and held by the locker.

ContractRoleAddress
Uniswap V3 factoryCreates the graduated pools0x1f7d7550b1b028f7571e69a784071f0205fd2efa
Position managerMints the LP position the locker holds0x73991a25c818bf1f1128deaab1492d45638de0d3
SwapRouter02Routes post-graduation swaps0xcaf681a66d020601342297493863e78c959e5cb2
QuoterV2Prices post-graduation quotes0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7
WETHWrapped ETH the pools are paired with0x0bd7d308f8e1639fab988df18a8011f41eacad73

Check it without trusting this page

  1. Pull the registry

    The API serves the same addresses this page renders, with bytecode size, verification and wiring for each.

  2. Match the explorer

    Open any address on robin.etherscan.io. The Contract tab shows the verified source and the name the API reports.

  3. Read the getters

    Every wiring row above is one eth_call. Reproduce it with cast, viem or the explorer's Read tab.

curl -s https://api.vectr.bot/contracts | jq '.contracts[] | {key, address, name: .verification.contractName}'
curl -s https://api.vectr.bot/config | jq .contracts

Both endpoints are public on api.vectr.bot and need no key. Token pages link each curve and its graduated pool straight to the explorer.