Baofa does not use proxies, clones or shared token contracts for coins. The protocol's factory deploys a complete BaofaCoin contract for every launch. The contract is small, verified from the same source on every deployment, and holds no privilege for anyone.
Properties#
| Property | BaofaCoin |
|---|---|
| Standard | ERC-20 with permit (EIP-2612) |
| Decimals | 6 |
| Supply | 1,000,000,000, minted once to the curve at construction |
| Mint function | none |
| Burn | holders may burn their own balance |
| Owner | none; no owner(), no admin role, no upgrade path |
| Pause | none |
| Blacklist or whitelist | none |
| Transfer tax or fee on transfer | none |
| Max wallet or max transaction | none |
| Proxy or delegatecall | none |
Hidden mint through permit or allowances |
none; permit only sets an allowance signed by the holder |
The One Gate#
BaofaCoin has one condition on transfers: until the coin has graduated, transfers to its own canonical PancakeSwap v2 pair address revert. Every other transfer is unconditional from the first block.
The gate exists because the pair address is computable before the pair exists. Without the gate an attacker could seed the pair ahead of graduation at a false price or take its first liquidity tokens. The gate closes that in the token itself rather than in an off-chain process, and it opens permanently in the graduation transaction, which is permissionless. The core contract is the only caller that can open it, and only by graduating the coin.
Verification#
The factory deploys every coin from one creation code, so the source verified for the first coin on a block explorer applies to every coin by "similar match". The deployment runbook verifies the factory, the first coin and the diamonds on BscScan at deployment; the Addresses page links each verified source.
Addresses Are Predictable#
Coins are created with CREATE2 from the factory and the creator's salt. predictCoin(deployer, salt) on the core contract returns the address a launch will receive, so a creator can publish it, prepare the metadata document for it, or reserve a vanity address before the launch transaction.
Coin Functions#
| Function | Purpose |
|---|---|
transfer, transferFrom, approve, allowance, balanceOf, totalSupply |
ERC-20 |
permit, nonces, DOMAIN_SEPARATOR |
gasless approvals by signature |
burn |
a holder destroys part of their own balance |
gate() |
the canonical PancakeSwap v2 pair address while the gate is closed; zero once the coin has graduated |
metadataURI() |
the metadata document address recorded at creation |
core() |
the core contract that created the coin |
The complete generated interface is on the Coin and Factory Reference page.