The staking engine for BSC is built on BC(Binance Chain). Therefore, BSC's users will have to transfer their BNB to their BC wallets first before they can send staking transactions from their BC wallets. At UTC 00:00 every day, the BSC staking engine will distribute the previously received validator reward to all validators and delegators. According to the staking snapshot at UTC 00:00, the BSC staking engine will generate a cross-chain communication package that specifies all qualified BSC validators. Once the cross-chain package is delivered on BSC, BSC will transfer the accumulated validator rewards back to BC and apply a new validator set.
During day one, staking time has no effect on the validator set selection result. The BSC staking engine will take a snapshot for all validators' voting power at UTC 00:00 and select the top 21 validators from the snapshot. Suppose a user stakes some BNB at UTC 01:00, then the staking won't have any effect on this day, but it will be counted on the next day.
Suppose a user stakes some BNB to a validator on the first day and the validator is in the validator set in next UTC 00:00, then the user will get the first staking rewards on the third day.