Gaines attended Judson High School in Converse, Texas, where he played football and ran track.
He totalled 110 tackles and four interceptions during his two seasons, and blocked five kicks as a senior, leading Judson to the state title game played at Rice Stadium.
As a junior, he ran a leg on Judson's 4 × 100 m relay squad that finished third at the state track meet, with a school-record time of 40.91 seconds.
[9] Gaines was one of 38 cornerbacks and 59 collegiate defensive backs to receive an invitation to perform at the NFL Scouting Combine in Indianapolis, Indiana.
He tied TCU's Jason Verrett for the second best 40-yard dash time among defensive backs at the combine, finishing only behind Oklahoma State's Justin Gilbert.
[12] Gaines had private visits or workouts with the Buffalo Bills, Pittsburgh Steelers, Cincinnati Bengals, Tampa Bay Buccaneers, New York Giants, and Miami Dolphins.
[23] Throughout his first training camp, he competed with Brandon Flowers, Chris Owens, Marcus Cooper, Jamell Fleming, and Ron Parker for a job as the starting cornerback.
[24] Head coach Andy Reid named him the sixth cornerback on the depth chart to start the regular season, behind Sean Smith, Cooper, Owens, Parker, and Fleming.
On November 16, 2014, Gaines earned his third career start and collected a season-high five solo tackles in the Chiefs 24–20 victory against the Seattle Seahawks.
Gaines started in place of Cooper who was benched after an underwhelming performance while replacing Fleming who suffered a hamstring injury.
[31][32] Gaines entered training camp facing major competition for the starting cornerback job against 2015 first round pick Marcus Peters, Cooper, Fleming, and Sanders Commings.
[33] Head coach Andy Reid named him the starting cornerback, along with the rookie Peters, after Smith was suspended for the first three games due to a violation of the league's substance abuse policy.
The following game, he recorded two solo tackles in a 38–28 loss at the Green Bay Packers, but left in the first quarter after tearing his ACL.
[36] Gaines competed against Steven Nelson, Kenneth Acker, KeiVarae Russell, and Eric Murray for the starting cornerback job left by the departure of Smith during free agency to the Raiders.
[37] On September 25, 2016, Gaines a recorded season-high seven solo tackles and forced a fumble in the Chiefs' 24–3 victory over the New York Jets.
Unfortunately, he left in the fourth quarter after suffering a knee injury related to his ACL tear and was unable to play in the Chiefs' Week 4 game where they defeated the Steelers 43–14.