Seagulls head coach Graham Potter said: “Shane has been an outstanding servant to this club, and is rightly held in high esteem by everyone here.
“There was no pressure on him to leave, but typically he wanted to play regular football, and while he was still part of our wider squad, we could not guarantee him that.
“This move will give him that opportunity, which is really important to him as the captain of the Republic of Ireland, and Fulham are getting a player who has great experience at this level.
“He played a massive part in the promotion season and has been a key member of the squad as the club continues to establish itself at this level, under both Chris Hughton and ever since I came as manager.
“Personally, I have loved working with Shane, he’s been fantastic around the training ground, even when he hasn’t been playing, and he is someone we all will really miss.
“On behalf of everyone at the club, I want to wish him well for the season ahead.”
Duffy arrived at Albion from Blackburn Rovers in August 2016, signing a four-year deal and becoming the club’s record signing, and won promotion to the Premier League in his first season.
He began his career as a youngster with Everton, and had loan spells with Burnley, Scunthorpe United and Yeovil Town, clocking up 50 senior appearances, with the majority coming in the Championship.
Called up to the Republic of Ireland senior squad in 2012, he eventually made his senior debut against Costa Rica in June 2014.
Duffy was part of the Irish squad at UEFA Euro 2016, helping them to a famous 1-0 win over Italy and qualification for the last 16.
The Irishman has a club record to his name, beating Gerry Ryan's and Steve Penney's record for the most international caps.
He spent the 2020-21 season on loan with Celtic, making 27 appearances in all competitions.
Duffy returned to Albion and put in a man of the match performance on his first Seagulls start in nearly 18 months in a 2-1 win at Burnley on the opening day of the 2021-22 season.