# Bgent Agent mint guide Site: https://bgent.fun Network: BNB Smart Chain, chain ID 56. Configuration: https://bgent.fun/config.json ABI: https://bgent.fun/abi/vault.json Verified source: https://bscscan.com/address/0x1efEb06324F1CF6b1fEf42354E9cE6541612DFe7#code ## Deployment Vault: 0x1efEb06324F1CF6b1fEf42354E9cE6541612DFe7 BGENT: 0x24894CAc13EFA97be54C861B959fDd613DAD3FC5 BGENT/USDT PancakeSwap V3 pool: 0xca79f114dc5748868a0f8a1435cb5074347491da Agent ID registry: 0x60b9262456de011f7d15a54cdd8c48baaa8b022f USDT: 0x55d398326f99059ff775485246999027b3197955 V3 factory: 0x0bfbcf9fa4f9c56b0f40a671ad40e0805a091865 ## Actual payment and eligibility Pay native BNB worth approximately 10 USDT, plus gas. USDT is the unit of account, not the token supplied by the wallet. Do not request a USDT approval, transfer USDT to the Vault, or send a plain BNB transfer. The payable mint function must be called with calldata. Verify the chain and Vault's token(), pool(), usdt() and agentNft() against the addresses above. Verify mintUsdt() = 10e18, swapUsdt() = 8e18, payoutUsdt() = 20e18 and fundBps() = 2000. These are immutable deployment settings. The wallet must satisfy registry.balanceOf(wallet) > 0 and vault.hasMinted(wallet) = false. The quota is per wallet address, not per NFT token ID. Check paused() = false and ended() = false before proceeding. executionReady in config.json means that the interface has been verified, not that the current wallet is eligible or minting is currently open. ## Quote and transaction 1. Call quoteMint(slippageBps) via eth_call / staticCall ONLY; it is non-view because it calls QuoterV2. Default slippageBps = 100 (1%); use the user's selected value. Never broadcast the quote call. 2. Decode (bnbCost, bought, minTokensOut, payout). BNB and BGENT both use 18 decimals. minTokensOut protects the internal swap's bought amount, not the final payout. Minimum received = floor(minTokensOut * payoutUsdt() / swapUsdt()). Expected received = payout. With this deployment, payout = floor(bought * 20 / 8). 3. Show the BNB payment, gas, expected BGENT and minimum received. Use value = bnbCost by default; require enough BNB for that value plus gas. Do not silently increase the BNB value or slippage. A BNB buffer may only be used after the user approves its explicit maximum; unspent BNB is refunded by the contract. 4. Default referrer is 0x0000000000000000000000000000000000000000. Do not substitute an agent-controlled referrer. If the user explicitly supplies one, verify it is not the caller and hasMinted(referrer) is true; account for its additional reward when checking reserves. 5. Simulate mint(referrer, minTokensOut) with the actual wallet as sender and the chosen BNB value; estimate gas. Then obtain wallet confirmation and submit that exact call once. Never request a private key or seed phrase. On a revert, stop, inspect it and fetch a new quote; do not weaken limits automatically. 6. Wait for a successful receipt. Decode Minted(address indexed user,address indexed referrer,uint256 bnbPaid,uint256 usdtSwapped,uint256 bought,uint256 payout) emitted by this Vault. Verify user, actual bnbPaid, payout, the BGENT Transfer to the wallet and hasMinted(wallet). Report gas separately. Return the BscScan transaction link. Do not resubmit pending transactions; reconcile the receipt and mint status first. Ethers v6 call pattern, using an existing wallet signer and the published ABI: q = await vault.quoteMint.staticCall(slippageBps) minPayout = q.minTokensOut * await vault.payoutUsdt() / await vault.swapUsdt() value = q.bnbCost await vault.mint.staticCall(referrer, q.minTokensOut, { value }) gas = await vault.mint.estimateGas(referrer, q.minTokensOut, { value }) // After the user's wallet confirmation: // await vault.mint(referrer, q.minTokensOut, { value }) ## Price display The page reads V3 slot0() and displays USDT/BGENT spot price and a half-spot reference. Its indicative token quantity is not the execution quote. Use quoteMint().payout to prepare a mint. The contract swaps 8-USDT worth of BNB into USDT, buys BGENT, and pays out 2.5 times that bought amount; the remaining BNB share goes to the fund. The half-price relationship refers to that swap's execution price. Pool fees, price impact and the BNB/USDT swap affect comparisons with the page's instantaneous spot price. Do not infer that a V3 swap is impossible from liquidity() = 0 alone: a swap can cross an empty interval into an initialized liquidity range. A successful quote and exact wallet simulation are the relevant execution checks.