Updated

The Chicago Cubs and Starlin Castro have agreed to terms on a seven-year contract that locks up the third-year shortstop for the remainder of his 20s.

Castro, 22, leads the NL in hits since his debut in May 2010 and has already been named to two All-Star teams.

The new deal covers Castro's four arbitration seasons and his first three free-agent seasons. It includes a club option for an eighth season in 2020, when the Dominican will turn 30.

Terms of the deal were not released, but the Chicago Tribune reported it's for $60 million and includes a $6 million signing bonus. The club option would be for $16 million or the Cubs can buy Castro out for $1 million, according to the Tribune.

Castro was hitting .276 with 12 homers, 63 RBI and a .311 on-base percentage this season entering Tuesday night's game against Milwaukee. He's batted .296 with 25 homers, 170 RBI, 486 hits and a .334 on-base percentage in 410 games since 2010.

Born March 24, he is on pace to become the 28th player in major league history to reach 500 career hits before the age of 23.