BNB Circulation Model
The architecture of cross-chain communication is as in the above diagram. The cross-chain transfer is the key communication between the two blockchains. Essentially the logic is:
The transfer-out blockchain will lock the amount from source owner addresses into a system controlled address/contracts
The transfer-in blockchain will unlock the amount from the system controlled address/contracts and send it to target addresses.
Both networks will never mint BNB.
With this lock/unlock mechanism, the total circulation of BNB is always less than the initial total supply.
You may refer here for a more detailed explanation.
The system controlled vault on BNB Beacon Chain is bnb1v8vkkymvhe2sf7gd2092ujc6hweta38xadu2pj which is generated by code , and the vault on BNB Smart Chain is a system smart contract called Token Hub. The funds on these two addresses are treated as locked which are not part of the circulating supply.
BNB Beacon Chain is launched with 200M BNB total supply, as you can check the genesis block. BNB Smart Chain is launched with 1K BNB circulating supply and 176405560.9 BNB (it is also the BNB supply on Beacon Chain when BSC launches) locked in Token Hub, as you can check the genesis block of BSC mainnet.
Burn Model
Before realtime/autoburn, Binance has done BNB quarterly burn, you can check the history burn transaction in this page (need select burn type and search).
BNB uses a real-time burning mechanism as introduced in BEP95. A fixed ratio of the gas fee collected is burned in each block, with the ratio decided by BSC validators. You can simply get the amount of real-time burn from BSC Scan.
Besides BEP95, some community projects will also burn BNB into a dead account.
The Binance Team uses an Auto-Burn system to reduce its total supply to 100,000,000 BNB. The BNB Auto-Burn mechanism adjusts the amount of BNB to be burned based on BNB's price and the number of blocks generated on BNB Smart Chain (BSC) during the quarter.
Also BNB lost in eligible cases can also be reimbursed through the BNB Pioneer Burn Program. This counts users' lost coins towards the official burn count and reimburses them with BNB.
So how can we get the exact burned amount?
  1. Auto Burn = 200M - (total supply shown in this page).
  2. Real Time Burn = the amount shown in this page.
  3. Community Burn = the BNB balance of the dead account - Real Time Burn
  4. Total Burned = (Auto Burn on Beacon Chain) + (Real Time Burn) + (Community Burn).
How can we get the circulating supply?
  1. Total BNB Circulation = Unlocked BNB - (Real Time Burn) - (Community Burn)
  2. Unlocked BNB = ( total supply on Beacon Chain - BNB on lock vault ) + (total supply on BSC is 176406560.9 - BNB on Token Hub)
Supplementary Notes
  1. 2M BNB is minted by Hacker during the BNB-Chain bridge incident, and 1.02M BNB of them is locked on the chain which is treaded as burn.
  2. And around 6823 BNB is unfortunately locked on TokenHub contract by user misoperation, we treat it as burn as well.