As shown in Table 2, the pHs of B + Zn at the reaction time of 2 h reached 7.0, which were lower than those of B. This indicated that plenty of OH− were consumed during Zn immobilization. For PN350 and WS350, the concentrations of CO32− in B were respectively 0.3 and 1.1 mmol L−1; while the concentrations of CO32− in B + Zn could not be detected (ND) indicating the consumption of CO32− during Zn immobilization. As Ca2+ which released from biochars could also react with CO32−, the amount of CO32− which would react with Zn to form hydrozincite would be underestimated from these results. The released Si species could also influence the determination of CO32−, as they could buffer H+ in the solution44, which lead to the overestimated concentrations of CO32−. Thus the concentrations of CO32− in different samples cannot be used to calculate the real amounts of consumed CO32− in Zn immobilization, they were only for reference. For WS350 and WS550, the Si concentrations in B were respectively 0.9 and 2.0 mmol L−1 (the initial concentration of Zn2+ was 2.3 mmol L−1). Once reacted with Zn2+, the concentrations of Si decreased drastically. From the considerable amounts of released and consumed Si species, we assumed that some Si species in WS biochars may play an important role in Zn immobilization. Fig. S6 shows the ATR-FTIR spectra of the raw biochar filtrates. From Figs S6a and S6b we cannot see any band present in the spectra, while in Figs S6c and S6d there is a broad band in the region 1150–1050 cm−1 in each of the spectrum, which is due to the asymmetric Si–O–Si stretching vibration of long chain polymers45. The ATR-FTIR result suggested that the Si species released from biochar are Si-containing polymers with different chain length. The release and consumption of OH−, CO32− and Si species confirmed the results of XRD and EXAFS.