As far as I know, an acid is something that gives off a proton or hydrogen ion $H^{+}$.
But when I look at Citric Acid,
There are three $COO^{-}$, which I think is a carboxyl group, that lacks $H^{+}$.
They seem to rather demand a hydrogen ion from its environment than donate one, which make it basic and not acidic. But the name is still citrate or citric acid. Can someone explain?