Considered a three-star recruit by Rivals.com, he was rated as the 43rd best wide receiver prospect of his class.[3] On September 26, 2010, he accepted a scholarship and committed to the University of Louisville.[4]
College career
Gaines redshirted as a true freshman in 2011, after enrolling early in January 2011 with Teddy Bridgewater. In 2012, as a wide receiver, he caught 11 passes for 172 yards and one touchdown, but missed the final five games of the season due to a suspension, his second one that year.[5] He returned to the team in April 2013, where he was moved to cornerback.[6] He played in all 13 games, making 11 starts. He recorded 22 tackles and a team leading five interceptions, and earned first-team All-American Athletic Conference (AAC) honors. In 2014, he started 11 games for the Cardinals, recording 36 tackles with two interceptions.
Following the season, he announced he would forgo his remaining eligibility and enter the 2015 NFL draft.[7]
Professional career
Cleveland Browns
Gaines drafted by the Cleveland Browns in the sixth round, 189th overall, of the 2015 NFL draft.[8] On May 10, 2015, Gaines signed a four-year, $2.402 million contract with the Browns, which included a $122,137 signing bonus.[9] On September 3, 2016, he was released by the Browns.[10]
Buffalo Bills
On December 7, 2016, Gaines was signed to the practice squad of the Buffalo Bills.[11] He signed a reserve/future contract with the Bills on January 2, 2017.[12] Gaines was waived by the Bills on May 25, 2017.[13]