Protein cages are synthetic virus-like particles (VLPs), that can be used to display biological material on their surface, or transport molecules such as nucleic acids or proteins into the interior of the cell. Our cages are programmable and have significant potential as both drug delivery systems and vaccines.