Home Basket BallNBA trade candidates: Who can get traded on Dec. 15? Who has to wait? And who can’t be moved at all?

NBA trade candidates: Who can get traded on Dec. 15? Who has to wait? And who can’t be moved at all?

by Marcelo Moreira

We’ve heard quite a bit of trade chatter so far in this young NBA season. Anthony Davis. Ja Morant. LaMelo Ball. Giannis Antetokounmpo. Yet we’ve seen no real action on these fronts. The rules essentially made an early season blockbuster impossible. A huge chunk of NBA players are not currently tradable, which makes matching salaries in a blockbuster trade enormously difficult for most of the league.

But on Monday, that changes. That’s because, starting on Dec. 15, the overwhelming majority of 2025 free agent signings become trade-eligible. This year, that means a total of 77 players, or about 17% of the 450 roster spots around the league, can technically hit the market on Monday. So below, we’ll not only cover those players, but any others with different trade restrictions.

Who can get traded on Dec. 15?

On Monday, the following players who signed free agent contracts this offseason become eligible for trade, listed in order of 2025-26 cap hit:

  • James Harden—$39,182,693
  • Kyrie Irving—$36,566,002
  • Julius Randle—$30,864,198
  • Myles Turner—$25,318,251
  • Fred VanVleet—$25,000,000
  • Duncan Robinson—$16,834,692
  • Nickeil Alexander-Walker—$15,161,800
  • Caris LeVert—$14,104,000
  • Damian Lillard—$14,104,000
  • Dennis Schroder—$14,104,000
  • Bobby Portis—$13,445,754
  • Dorian Finney-Smith—$12,700,000
  • Luke Kennard—$11,000,000
  • Luke Kornett—$11,000,000
  • Brook Lopez—$8,750,000
  • Ty Jerome—$8,781,000
  • Deandre Ayton—$8,104,000
  • Tre Jones—$8,000,000
  • Kevon Looney—$8,000,000
  • Clint Capela—$6,700,000
  • Day’Ron Sharpe—$6,250,000
  • Ziaire Williams—$6,250,000
  • Jake LaRavia—$6,000,000
  • Cam Thomas—$5,993,172
  • D’Angelo Russell—$5,685,000
  • Nic Batum—$5,601,600
  • Guerschon Yabusele—$5,500,000
  • Bradley Beal—$5,354,000
  • Marcus Smart—$5,134,000
  • Kevin Porter Jr.—$5,134,000
  • Mo Wagner—$5,000,000
  • Gary Trent Jr.—$3,697,105
  • Gary Harris—$3,634,153
  • Jaxson Hayes—$3,449,323
  • Taurean Prince—$3,303,774
  • Ajay Mitchell—$3,000,000
  • Cam Spencer—$2,537,989
  • Luka Garza—$2,461,463
  • Jericho Sims—$2,461,463
  • Sandro Mamukelashvili—$2,461,463
  • Dru Smith—$2,378,870
  • Josh Minott—$2,378,870
  • Chris Boucher—$2,296,274
  • Mason Plumlee—$2,296,274
  • Larry Nance Jr.—$2,296,274
  • Javonte Green—$2,296,274
  • Thanasis Antetokounmpo—$2,296,274
  • Cole Anthony—$2,296,274
  • Amir Coffey—$2,296,274
  • Jordan Clarkson—$2,296,274
  • Landry Shamet—$2,296,274
  • Eric Gordon—$2,296,274
  • Garrett Temple—$2,296,274
  • Marvin Bagley—$2,296,274
  • Anthony Gil—$2,296,274
  • Dante Exum—$2,296,274
  • Bruce Brown—$2,296,274
  • Tim Hardaway Jr.—$2,296,274
  • Jeff Green—$2,296,274
  • Aaron Holiday—$2,296,274
  • Josh Okogie—$2,296,274
  • Jae’Sean Tate—$2,296,274
  • Chris Paul—$2,296,274
  • Jock Landale—$2,296,274
  • Bones Hyland—$2,296,274
  • Kyle Lowry—$2,296,274
  • Joe Ingles—$2,296,274
  • Collin Gillespie—$2,296,274
  • Blake Wesley—$2,296,274
  • Drew Eubanks—$2,296,274
  • Doug McDermott—$2,296,274
  • Bismack Biyombo—$2,296,274
  • Jordan McLaughlin—$2,296,274
  • Lindy Waters—$2,296,274
  • N’Faly Dante—$2,048,494
  • Justin Edwards—$2,048,494
  • Nigel Hayes-Davis—$2,048,494

Who has to wait until Jan. 15?

Most free agents can be traded on Dec. 15. However, a small group has to wait an extra month. Those are the free agents who re-signed with their original team using Bird or Early Bird Rights, make more than the minimum and who got a raise greater than 20% over their salary from last season. That list includes 11 players:

  • Josh Giddey—$25,000,000
  • Jonathan Kuminga—$22,500,000
  • Naz Reid—$21,551,724
  • Santi Aldama—$18,485,916
  • Davion Mitchell—$11,600,000
  • Quentin Grimes—$8,741,209
  • Sam Merrill—$8,482,144
  • Tre Mann—$8,000,000
  • Isaiah Jackson—$7,600,000
  • Paul Reed—$5,335,894
  • Ryan Rollins—$4,000,000

Who has other trade date restrictions?

There are nine players who cannot be traded until a day besides Dec. 15 or Jan. 15. Those players signed veteran extensions during the offseason with specific parameters: they cover at least four total seasons, they come with a first-year raise greater than 20%, and they include either a salary increase or decrease greater than 5% at any point in the extension. When a player signs such a contract, he cannot be traded for six months. Below are the players in question in order of their trade eligibility date:

Additionally, the three free agents that Golden State signed this offseason along with their lone draft pick are in a somewhat unusual position. The Warriors had to wait until the Kuminga situation settled before signing any other players so as to avoid putting themselves in a position in which someone made him an offer sheet they could not legally match. Therefore, their free agents didn’t sign until right before training camp, and technically, free agents cannot be traded until either Dec. 15 or three months have passed, whichever comes later. That means that Al Horford and De’Anthony Melton cannot be traded until Jan. 1, three months after they signed on Oct. 1. Gary Payton II and No. 56 overall pick Will Richard can be traded on Dec. 29.

Who can’t be traded at all this season?

There are four players who signed the sort of extension restricting those in our last group, except they ultimately signed those deals after Aug. 5, meaning their six-month trade restriction will take them beyond the 2026 trade deadline. Those players are Toumani Camara, A.J. Green, P.J. Washington and Aaron Nesmith.

Additionally, players who signed designated veteran extensions, or “supermax” contracts, cannot be traded for one calendar year after they sign. There is only one such player who did so last offseason, and he wasn’t going to get traded anyway. Nonetheless, Shai Gilgeous-Alexander is technically not eligible to be traded.

Finally, we have one last Warrior to address. Seth Curry didn’t sign with Golden State until Nov. 30, as they were pressed up against a second apron hard cap and needed his prorated minimum salary to drop. It eventually did, but as three months beyond Nov. 30 would take Curry beyond the trade deadline, he cannot be traded at any point this season.

Are there any other notable trade eligibility tidbits to know?

There are two more types of player we should address in some fashion. The first are players who have the right to veto trades. The standard way to do so is through a no-trade clause. Only two active players explicitly have them in their contracts: LeBron James and Damian Lillard.

However, a player can gain the right to veto a trade under certain contractual conditions. Those are players who re-signed with their original teams either on one-year deals or on two-year deals in which the second season is an option. As of the 2023 CBA, players can waive these implicit no-trade clauses upon signing their contracts, and many do so either to earn more favorable contractual terms or because their team simply won’t re-sign them otherwise. There are 15 players in total who can block a trade based on the contracts they signed over the summer. Here they are in order of 2025-26 cap hits.

Finally, while they are eligible to be traded, we need to cover 2022 first-round picks who signed rookie extensions over the summer. Those extensions gave them poison pill provisions. This means that for their original teams, they count as their actual 2025-26 salary as outgoing money. However, their new team, solely for salary-matching purposes in the trade and not for salary cap, luxury tax or apron concerns, would need to count that player as the average salary for every year he is under contract both on the extension and the existing season, which would have been covered by his original rookie deal. There is nothing preventing these contracts from being traded other than the difficulty of matching salary for many teams under the more restrictive 2023 CBA. The math can get very tricky for teams navigating the aprons. 

A total of nine rookies signed such extensions before the season, so here they are in the order they were drafted:

require.config({“baseUrl”:”https://sportsfly.cbsistatic.com/fly-370/bundles/sportsmediajs/js-build”,”config”:{“version”:{“fly/components/accordion”:”1.0″,”fly/components/alert”:”1.0″,”fly/components/base”:”1.0″,”fly/components/carousel”:”1.0″,”fly/components/dropdown”:”1.0″,”fly/components/fixate”:”1.0″,”fly/components/form-validate”:”1.0″,”fly/components/image-gallery”:”1.0″,”fly/components/iframe-messenger”:”1.0″,”fly/components/load-more”:”1.0″,”fly/components/load-more-article”:”1.0″,”fly/components/load-more-scroll”:”1.0″,”fly/components/loading”:”1.0″,”fly/components/modal”:”1.0″,”fly/components/modal-iframe”:”1.0″,”fly/components/network-bar”:”1.0″,”fly/components/poll”:”1.0″,”fly/components/search-player”:”1.0″,”fly/components/social-button”:”1.0″,”fly/components/social-counts”:”1.0″,”fly/components/social-links”:”1.0″,”fly/components/tabs”:”1.0″,”fly/components/video”:”1.0″,”fly/libs/easy-xdm”:”2.4.17.1″,”fly/libs/jquery.cookie”:”1.2″,”fly/libs/jquery.throttle-debounce”:”1.1″,”fly/libs/jquery.widget”:”1.9.2″,”fly/libs/omniture.s-code”:”1.0″,”fly/utils/jquery-mobile-init”:”1.0″,”fly/libs/jquery.mobile”:”1.3.2″,”fly/libs/backbone”:”1.0.0″,”fly/libs/underscore”:”1.5.1″,”fly/libs/jquery.easing”:”1.3″,”fly/managers/ad”:”2.0″,”fly/managers/components”:”1.0″,”fly/managers/cookie”:”1.0″,”fly/managers/debug”:”1.0″,”fly/managers/geo”:”1.0″,”fly/managers/gpt”:”4.3″,”fly/managers/history”:”2.0″,”fly/managers/madison”:”1.0″,”fly/managers/social-authentication”:”1.0″,”fly/utils/data-prefix”:”1.0″,”fly/utils/data-selector”:”1.0″,”fly/utils/function-natives”:”1.0″,”fly/utils/guid”:”1.0″,”fly/utils/log”:”1.0″,”fly/utils/object-helper”:”1.0″,”fly/utils/string-helper”:”1.0″,”fly/utils/string-vars”:”1.0″,”fly/utils/url-helper”:”1.0″,”libs/jshashtable”:”2.1″,”libs/select2″:”3.5.1″,”libs/jsonp”:”2.4.0″,”libs/jquery/mobile”:”1.4.5″,”libs/modernizr.custom”:”2.6.2″,”libs/velocity”:”1.2.2″,”libs/dataTables”:”1.10.6″,”libs/dataTables.fixedColumns”:”3.0.4″,”libs/dataTables.fixedHeader”:”2.1.2″,”libs/dateformat”:”1.0.3″,”libs/waypoints/infinite”:”3.1.1″,”libs/waypoints/inview”:”3.1.1″,”libs/waypoints/jquery.waypoints”:”3.1.1″,”libs/waypoints/sticky”:”3.1.1″,”libs/jquery/dotdotdot”:”1.6.1″,”libs/jquery/flexslider”:”2.1″,”libs/jquery/lazyload”:”1.9.3″,”libs/jquery/maskedinput”:”1.3.1″,”libs/jquery/marquee”:”1.3.1″,”libs/jquery/numberformatter”:”1.2.3″,”libs/jquery/placeholder”:”0.2.4″,”libs/jquery/scrollbar”:”0.1.6″,”libs/jquery/tablesorter”:”2.0.5″,”libs/jquery/touchswipe”:”1.6.18″,”libs/jquery/ui/jquery.ui.core”:”1.11.4″,”libs/jquery/ui/jquery.ui.draggable”:”1.11.4″,”libs/jquery/ui/jquery.ui.mouse”:”1.11.4″,”libs/jquery/ui/jquery.ui.position”:”1.11.4″,”libs/jquery/ui/jquery.ui.slider”:”1.11.4″,”libs/jquery/ui/jquery.ui.sortable”:”1.11.4″,”libs/jquery/ui/jquery.ui.touch-punch”:”0.2.3″,”libs/jquery/ui/jquery.ui.autocomplete”:”1.11.4″,”libs/jquery/ui/jquery.ui.accordion”:”1.11.4″,”libs/jquery/ui/jquery.ui.tabs”:”1.11.4″,”libs/jquery/ui/jquery.ui.menu”:”1.11.4″,”libs/jquery/ui/jquery.ui.dialog”:”1.11.4″,”libs/jquery/ui/jquery.ui.resizable”:”1.11.4″,”libs/jquery/ui/jquery.ui.button”:”1.11.4″,”libs/jquery/ui/jquery.ui.tooltip”:”1.11.4″,”libs/jquery/ui/jquery.ui.effects”:”1.11.4″,”libs/jquery/ui/jquery.ui.datepicker”:”1.11.4″}},”shim”:{“liveconnection/managers/connection”:{“deps”:[“liveconnection/libs/sockjs-0.3.4″]},”liveconnection/libs/sockjs-0.3.4”:{“exports”:”SockJS”},”libs/setValueFromArray”:{“exports”:”set”},”libs/getValueFromArray”:{“exports”:”get”},”fly/libs/jquery.mobile-1.3.2″:[“version!fly/utils/jquery-mobile-init”],”libs/backbone.marionette”:{“deps”:[“jquery”,”version!fly/libs/underscore”,”version!fly/libs/backbone”],”exports”:”Marionette”},”fly/libs/underscore-1.5.1″:{“exports”:”_”},”fly/libs/backbone-1.0.0″:{“deps”:[“version!fly/libs/underscore”,”jquery”],”exports”:”Backbone”},”libs/jquery/ui/jquery.ui.tabs-1.11.4″:[“jquery”,”version!libs/jquery/ui/jquery.ui.core”,”version!fly/libs/jquery.widget”],”libs/jquery/flexslider-2.1″:[“jquery”],”libs/dataTables.fixedColumns-3.0.4″:[“jquery”,”version!libs/dataTables”],”libs/dataTables.fixedHeader-2.1.2″:[“jquery”,”version!libs/dataTables”],”https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js”:[“https://sports.cbsimg.net/js/CBSi/util/Utils-min.js”]},”map”:{“*”:{“adobe-pass”:”https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js”,”facebook”:”https://connect.facebook.net/en_US/sdk.js”,”facebook-debug”:”https://connect.facebook.net/en_US/all/debug.js”,”google”:”https://apis.google.com/js/plusone.js”,”google-csa”:”https://www.google.com/adsense/search/async-ads.js”,”google-javascript-api”:”https://www.google.com/jsapi”,”google-client-api”:”https://accounts.google.com/gsi/client”,”gpt”:”https://securepubads.g.doubleclick.net/tag/js/gpt.js”,”hlsjs”:”https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.7/hls.js”,”recaptcha”:”https://www.google.com/recaptcha/api.js?onload=loadRecaptcha&render=explicit”,”recaptcha_ajax”:”https://www.google.com/recaptcha/api/js/recaptcha_ajax.js”,”supreme-golf”:”https://sgapps-staging.supremegolf.com/search/assets/js/bundle.js”,”taboola”:”https://cdn.taboola.com/libtrc/cbsinteractive-cbssports/loader.js”,”twitter”:”https://platform.twitter.com/widgets.js”,”video-avia”:”https://sports.cbsimg.net/fly/js/avia-js/2.48.0/player/avia.min.js”,”video-avia-ui”:”https://sports.cbsimg.net/fly/js/avia-js/2.48.0/plugins/ui/avia.ui.min.js”,”video-avia-gam”:”https://sports.cbsimg.net/fly/js/avia-js/2.48.0/plugins/gam/avia.gam.min.js”,”video-avia-hls”:”https://sports.cbsimg.net/fly/js/avia-js/2.48.0/plugins/hls/avia.hls.min.js”,”video-avia-playlist”:”https://sports.cbsimg.net/fly/js/avia-js/2.48.0/plugins/playlist/avia.playlist.min.js”,”video-ima3″:”https://imasdk.googleapis.com/js/sdkloader/ima3.js”,”video-ima3-dai”:”https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js”,”video-utils”:”https://sports.cbsimg.net/js/CBSi/util/Utils-min.js”,”video-vast-tracking”:”https://sports.cbsimg.net/fly/js/sb55/vast-js/vtg-vast-client.js”}},”waitSeconds”:300});

Source link

Related Posts

Leave a Comment