Fair Price Discovery System for New Tokens

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1All 1305 services
Fair Price Discovery System for New Tokens
Complex
~1-2 weeks
Frequently Asked Questions

Blockchain Development Services

Blockchain Development Stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1358
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    956
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1188
  • image_logo-advance_0.webp
    B2B Advance company logo design
    646
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    929

Developing a Fair Price Discovery System for New Tokens

We solve one of the hardest problems in token launches — fairly determining the initial price. Classic mechanisms — fixed price on IDO or CEX listing — are systematically unfair: insiders know the price ahead of time, bots snatch the first blocks, and retail buyers jump in at the hype. The outcome is predictable: a sharp pump at launch, a dump within hours, and the community left with losses. In practice we've seen projects where the price dropped 80% within 24 hours after listing, destroying trust and capital.

Fair price discovery isn't just a "fair price" — it's a mechanism where the price is formed by an aggregated market signal, not by the team or large participants. There are several implementations, and the choice depends on the project's specifics. We've built dozens of such systems for DeFi projects, ensuring transparency and resistance to manipulation. Request a project assessment — we'll select the optimal mechanism.

How to Choose a Fair Price Discovery Mechanism?

Comparison of Approaches

Mechanism Principle MEV Protection Complexity Best For
Dutch Auction Price drops over time Low (rush at end) Medium One-shot IDO
LBP (Balancer) Pool weights change High (whales can't influence) Medium DeFi launch
TWAMM Large orders are split High (no single moment) High Gradual placement
VRGDA Price depends on demand Medium High Continuous emission
Bonding curve + commit-reveal Demand hidden until reveal Very high High Sensitive tokens

Dutch Auction (Descending Auction)

The price starts high and linearly (or exponentially) decreases until enough demand is met. Participants see the current price and decide: buy now or wait for a drop. The equilibrium price is the one at which the entire offering is sold out.

Solidity implementation:

contract DutchAuction {
    uint256 public immutable startPrice;
    uint256 public immutable endPrice;
    uint256 public immutable startTime;
    uint256 public immutable duration;
    uint256 public immutable totalTokens;
    uint256 public tokensSold;

    function currentPrice() public view returns (uint256) {
        if (block.timestamp >= startTime + duration) return endPrice;
        uint256 elapsed = block.timestamp - startTime;
        uint256 priceDrop = (startPrice - endPrice) * elapsed / duration;
        return startPrice - priceDrop;
    }

    function buy(uint256 tokenAmount) external payable {
        uint256 price = currentPrice();
        uint256 cost = price * tokenAmount / 1e18;
        require(msg.value >= cost, "Insufficient ETH");
        require(tokensSold + tokenAmount <= totalTokens, "Sold out");
        tokensSold += tokenAmount;
        // transfer tokens + refund excess
    }
}

Advantages: pricing is determined by the market, no fixed allocation. Disadvantages: the "wait until the last minute" strategy creates a rush at the end — everyone waits for the minimal price, then buys simultaneously. This is an MEV haven. Gnosis used a Dutch Auction for the GNO sale. Results were mixed: the mechanics worked, but gas wars in the final blocks negated some benefits for retail participants.

Liquidity Bootstrapping Pool (LBP)

A Balancer mechanism: a pool with variable weights. It starts with a heavy tilt toward the project token (e.g., 96/4 TOKEN/USDC) and gradually shifts to an equilibrium distribution (50/50). The initially high price falls as sales and weight changes occur.

Key difference from Dutch Auction: the price reacts to real-time demand. There's no predetermined decline curve — there's an AMM that adjusts to buys and sells.

// LBP parameters in Balancer v2
const poolParams = {
    tokens: [projectToken, USDC],
    startWeights: [0.96, 0.04],   // 96% TOKEN, 4% USDC at start
    endWeights: [0.50, 0.50],     // 50/50 at end
    swapFeePercentage: ethers.utils.parseEther("0.01"), // 1%
    duration: 3 * 24 * 60 * 60,  // 72 hours
};

Why it's fairer: a large whale can't buy everything in the first block — the high initial token weight exponentially raises the price on large purchases. Bots without information advantage cannot predict the equilibrium. Projects that used LBP: Gitcoin, Radicle, numerous DeFi launches via Copper. It's the de facto standard for DeFi token launches on Ethereum. Balancer Protocol provides open-source code for LBP on GitHub.

How to Protect Dutch Auction from MEV?

MEV at the final blocks of a Dutch Auction is a critical problem. Solutions: a random deadline via Chainlink VRF, or a continuous Dutch Auction without a fixed end. In our implementations we also use Flashbots Protect RPC for private transaction execution, reducing gas costs by 30-50% for participants. The average liquidity volume in our Dutch Auction projects is $200k-$500k.

TWAMM (Time-Weighted Average Market Maker)

A conceptually different approach: large orders are executed in small pieces over a long period (hours, days). There's no single "listing" moment — the price forms gradually through continuous trading. FraxSwap implemented TWAMM on-chain. For a fair launch this means: instead of "listing on Friday at 2:00 PM UTC", it's "distribution runs Monday to Friday, a small volume each block". Bots lose their advantage — there's no single attack moment.

Bonding Curve with Commit-Reveal

Another approach: a bonding curve with a commit-reveal phase to combat frontrunning. Participants in the commit phase send keccak256(amount + salt) without revealing the amount. After the commit phase ends — reveal: everyone reveals their bids, and the final price is determined by the curve based on total demand.

// Commit phase
mapping(address => bytes32) public commitments;

function commit(bytes32 commitment) external payable {
    require(block.timestamp < commitDeadline, "Commit phase ended");
    commitments[msg.sender] = commitment;
    // ETH deposit — maximum possible amount
}

// Reveal phase
function reveal(uint256 amount, bytes32 salt) external {
    require(block.timestamp >= revealStart, "Reveal not started");
    bytes32 expected = keccak256(abi.encodePacked(amount, salt, msg.sender));
    require(commitments[msg.sender] == expected, "Invalid reveal");
    // record real demand for final price calculation
}

Protection Against Specific Attacks

Sybil Attacks

A single participant creates thousands of addresses to appear as a "wide base" and gain a disproportionate share. Solutions:

  • Proof of Humanity / Worldcoin: unique person verification. Hard to integrate into a contract, but possible via Merkle proofs.
  • Quadratic funding weighting: allocation proportional to the square root of the amount, not the amount itself. Sybil loses its edge: 100 addresses at $1 each give $10 "weight", one address at $100 gives $10 "weight". Equivalent for honest participants, costly for Sybil.
  • Snapshot + whitelist: use off-chain criteria (on-chain activity, NFT ownership) to form a whitelist via Merkle tree.

Whale Manipulation

A whale submits a huge volume at the last moment of the auction, shifting the price. Protection:

  • Max allocation per address: limits the share per address. Doesn't solve Sybil, but limits explicit whale impact.
  • Gradual price adjustment: LBP is mechanically resistant to this — exponential price increase on large purchases.
  • Time-locked participation: participants must register N days before the auction. Reduces last-moment manipulation.

How to Implement a Dutch Auction: Step-by-Step Guide

  1. Define parameters: start and end price, duration (usually 24-72 hours), total token volume.
  2. Deploy the smart contract based on the template above, adding reentrancy protection and a check for totalTokens.
  3. Set up the frontend with real-time display of currentPrice() using wagmi + viem.
  4. Integrate MEV protection: connect to Flashbots RPC and optionally Chainlink VRF for a random endpoint.
  5. Test on a mainnet fork (e.g., Tenderly Fork) with a volume of 10-20% of expected.
  6. Conduct a smart contract audit — mandatory for custom implementations; LBP on Balancer inherits Balancer's audit.
  7. After the auction, automatically add liquidity to the DEX (Uniswap v3 or Balancer) via scripts.

VRGDA (Variable Rate Gradual Dutch Auction)

A mechanism developed by the Art Gobblers team. The price adjusts based on the deviation of actual sales from the planned schedule. If tokens sell faster than planned — the price rises; if slower — it falls.

function getVRGDAPrice(
    int256 timeSinceStart,  // in seconds, signed
    uint256 sold           // tokens already sold
) public view returns (uint256) {
    return targetPrice.mulWadUp(
        decayConstant.mulWadUp(timeSinceStart - getTargetSaleTime(sold + 1)).expWad()
    );
}

VRGDA is suited for continuous emissions (NFT series, governance tokens with ongoing distribution), less applicable for one-shot IDOs.

What's Included in the Work

When you order a fair price discovery system from us, you get:

  • Tokenomics analysis and mechanism selection
  • Smart contract development with gas optimization and security best practices
  • Frontend integration (wagmi + viem) and DEX integration (Uniswap v3, Balancer)
  • MEV and Sybil protection setup
  • Testing on a mainnet fork
  • External contract audit by certified auditors
  • Automatic liquidity seeding after the auction
  • Documentation and technical support during launch

Tech Stack and Development Process

Component Technology
LBP contract Balancer v2 SDK + custom parameters
Dutch Auction Solidity + Foundry
Batch settlement Gnosis Auction fork or custom
Price oracle Chainlink + Uniswap v3 TWAP
Frontend wagmi + viem + React, real-time price via WebSocket
MEV protection Flashbots Protect RPC

Phase 1 (1-2 weeks): select mechanism for the specific tokenomics, audit parameters (starting price, duration, min/max allocation), legal analysis (not all mechanisms are regulatory neutral in all jurisdictions).

Phase 2 (3-4 weeks): develop contracts, integrate with Balancer or custom auction contract, test on mainnet fork.

Phase 3 (1-2 weeks): build participation frontend, monitoring, post-auction liquidity scripts.

Phase 4: external contract audit — mandatory, especially for custom mechanisms. LBP on Balancer inherits Balancer's audit; custom implementations do not.

Fair price discovery directly affects community trust in a project. Technically it's solvable, and choosing the right mechanism for a specific project is more important than perfectly implementing an unsuitable one. Contact us for a consultation — we'll help you develop a secure and transparent token sale based on 5+ years of experience in DeFi and dozens of successful launches. Order development — we guarantee transparency and security for your token sale.

Token Development: ERC-20, Tokenomics, Vesting

We’ve seen more rekt tokens than we can count — not because the code was broken, but because the economic assumptions were naive. A token that doesn’t collapse from inflation in six months, where governance actually works, and vesting can’t be bypassed through delegation tricks — that’s real engineering. We build under that standard.

How We Avoid Common ERC-20 Pitfalls

ERC-20 standard has nine functions. Complexity starts with extensions:

ERC-20Permit (EIP-2612) — gasless approve via signature. User signs permit(owner, spender, value, deadline, v, r, s) off-chain, spender calls permit() + transferFrom() in one transaction. Removes separate approve step. Risk: signature can be intercepted — need deadline and nonce checking. We always implement EIP-712 typed structured data to prevent signature malleability.

ERC-20Votes (EIP-5805) — snapshot balances for governance. Checkpoint system stores balance history by block number. getPastVotes(address, blockNumber) returns balance at proposal creation, not current. Prevents flash loan governance: can't borrow tokens and vote in one transaction.

Rebasing tokens (stETH, Ampleforth) — balanceOf changes automatically through internal shares ratio. High integration complexity: most DeFi protocols don't work correctly with rebasing without non-rebasing wrapper. We've deployed wrappers that decouple balance from share price for Uniswap compatibility.

Fee-on-transfer tokens — percentage cut on every transfer. Breaks AMM calculations: pool receives less than expected. Uniswap v2/v3 don't support natively — needs special pair/router. We’ve built custom routers that handle fee-on-transfer tokens without reverting.

Why Tokenomics Sustainability Matters More Than Excel

Tokenomics isn't Excel table summing to 100%. It's incentive model that either works long-term or creates selling pressure killing the project.

Emission Schedule and Inflation — Fixed supply (Bitcoin model) works for store-of-value, but for utility tokens you need controlled inflation. Inflationary model (like Ethereum post-Merge) generates new tokens to incentivize participants. Key balance: emission should be <= value captured by protocol. If protocol earns $100k/month but emission is $500k/month in market value — constant selling pressure inevitable. We model these scenarios using Python simulations with cadCAD for complex systems.

Supply Distribution — No universal formula. Principle: no single entity >33% voting power at launch. Otherwise governance is fiction.

Category Typical Range Risk
Team + advisors 15–20% Dumping on unlock
Investors (seed, private) 15–25% Coordinated exit
Treasury / DAO 20–35% Governance capture
Ecosystem / grants 10–20% Inefficient allocation
Public sale / LBP 5–15% Undervaluation → whale capture
Liquidity provision 5–10% Mercenary capital

What Are the Most Critical Vesting Contract Mistakes?

Linear vesting with cliff is standard for team and investors. cliff is the period after TGE with zero availability. After cliff: linear unlock until duration. Typical implementation errors we catch in audit:

  • Revocable vesting without timelock — owner can revoke immediately. Solution: revocation through multisig + governance vote with 7-day delay.
  • Cliff doesn't block governance rights — with ERC-20Votes, recipient can delegate voting power from day one even if tokens aren't unlocked. We explicitly separate voting power from claim logic.
  • No emergency pause — if vesting contract vulnerability discovered, need ability to pause claims. Pausable + timelock on unpause.

We’ve seen a project where the cliff was set to 0 by mistake — team could dump immediately. Our fuzz tests catch such edge cases before deployment.

Vesting contract implementation details

Pausable and Ownable2Step from OpenZeppelin are standard. We add a 7-day timelock on revocation functions. All withdraw functions emit events for off-chain tracking. Fuzz tests verify that cumulative released amount never exceeds total allocation, even after multiple revocations or partial claims.

Why Is Liquidity Bootstrapping Crucial for Token Launch?

Launch mechanics are critical. Three main approaches:

  • Balancer LBP — temporary pool with high initial token weight (90/10 project-token/USDC) that automatically decreases to 50/50 over days. Creates downward price pressure preventing bot buys at one price. After LBP liquidity moves to permanent pool.
  • Fjord Foundry — specialized platform for LBP and fair launches. Less operational overhead than direct Balancer integration.
  • Uniswap v3 with limited range — add liquidity in narrow range around initial price. High capital efficiency but requires active range management.
  • TWAMM — mechanics for gradual large-order sales without slippage. Implemented in FraxSwap.

LBP is 3-5x better than standard AMM listing for price discovery; we’ve seen fair launches with 50% less initial dump compared to direct Uniswap listings.

Governance Tokens and Voting Mechanics

OpenZeppelin Governor is the standard. Modular: GovernorVotes for counting, GovernorTimelockControl for timelock execution, GovernorSettings for adjustable parameters. Quorum is minimum percentage of supply for voting validity. Compound set quorum at 400k COMP (4% supply). We set quorum dynamically based on historical participation to avoid apathy or whale capture.

Flash loan governance attack — attacker borrows tokens via flash loan, delegates to self, creates proposal or votes, returns tokens. ERC-20Votes with block-based snapshot completely blocks this: must have tokens at snapshot creation moment, not voting moment.

Delegation — small holders often don't vote. Liquid delegation (like Optimism) lets delegate voting power to addresses without transfer. Critical for protocols with many passive holders.

Token Type Use Case Our Stack
ERC-20 utility Payments, rewards, gas Solidity 0.8.x, OpenZeppelin 5.x
ERC-20Permit Gasless approvals EIP-2612, EIP-712
ERC-20Votes On-chain governance Governor, TimelockController
ERC-1155 Multi-token (NFT + fungible) Solidity, OpenZeppelin
Vesting contracts Team/investor lockup LinearVesting, CliffVesting

Token Development Stack

Contracts: Solidity 0.8.x, OpenZeppelin Contracts 5.x (ERC20, ERC20Permit, ERC20Votes, Governor, TimelockController, TokenVesting).
Tokenomics audit: Python models with emission/demand simulation, cadCAD for complex systems modeling.
Deployment and management: Foundry scripts, Gnosis Safe for treasury, OpenZeppelin Defender for automation.
Analytics: Dune Analytics for on-chain metrics, Token Terminal for protocol revenue.

What’s Included in the Work (Deliverables)

  • Tokenomics model with stress tests (bear market, whale exit, governance capture)
  • Contract development with Foundry fuzz tests (gas optimization, reentrancy tests, overflow checks)
  • Audit summary and list of edge cases covered
  • Deployment scripts with Gnosis Safe admin keys
  • Documentation for future upgrades and maintenance
  • 30-day post-launch monitoring support

Process

  1. Tokenomics design — supply model, allocation, emission schedule, vesting. Stress-test scenarios.
  2. Contract development — ERC-20 + extensions, vesting, governance. Foundry fuzz tests on vesting calculations, governance thresholds.
  3. Audit — special attention on governance attack vectors, vesting bypass, permit replay attacks. We use Slither and Echidna for formal verification.
  4. LBP / launch — choose mechanics, set parameters, monitor first 24 hours.
  5. Post-launch — monitor supply distribution via Dune, governance participation metrics, treasury management.

Timelines

  • ERC-20 with permit and basic governance: 2–3 weeks
  • Vesting contract with revocation and cliff: 2–4 weeks
  • Full governance (Governor + Timelock + Token): 4–7 weeks
  • Token + LBP + governance + vesting: 8–14 weeks

We can estimate your project within 24 hours after discussing requirements. Contact us to start the conversation — no obligation, just a technical chat about your token model. Get a detailed proposal tailored to your tokenomics and compliance needs.