18 U.S.C 922(x)
(1) It shall be unlawful for a person to sell, deliver, or otherwise transfer to a person who the transferor knows or has reasonable cause to believe is a juvenile—
(A) a handgun; or
(B) ammunition that is suitable for use only in a handgun.
(2) It shall be unlawful for any person who is a juvenile to knowingly possess—
(A) a handgun; or
(B) ammunition that is suitable for use only in a handgun.
(3) This subsection does not apply to—
(A) a temporary transfer of a handgun or ammunition to a juvenile or to the possession or use of a handgun or ammunition by a juvenile if the handgun and ammunition are possessed and used by the juvenile—
Bottom line, 21 to purchase from an FFL. 18 is considered the age of maturity BUT, your state may set a more restrictive threshold if they so choose (such as 21). Missouri was 21 until August 28, 2007 when certain provisions of MO weapons law were amended or rescinded specifically RSMo 571.090 which stated an age of 21 and required anyone purchasing a hand gun to get a Permit To Acquire (PTA) each and every time they made a purchase. Now we simply follow federal law.