The Salary Cap
§ 1.1 Salary Cap Thresholds
The NBN Salary Cap mirrors the NBA's official salary cap for the same season. When the NBA announces its cap number each summer, the NBN cap is set to the same value. All apron thresholds follow the same proportional relationships as the NBA. Mid-Level Exception values increase each season at the same percentage rate as the overall cap.
All four cap thresholds are set externally each season by the league office and recorded in the system. The values below are live for the current season.
| Salary Cap |
— |
| First Apron |
— |
| Second Apron |
— |
| Hard Cap |
— |
| Non-Taxpayer MLE (NTMLE) |
— |
| Taxpayer MLE (TMLE) |
— |
| Bi-Annual Exception (BAE) |
— |
| Room Exception |
— |
| Est. Avg. Player Salary (EAPS) |
— |
The Estimated Average Player Salary (EAPS) is the projected league-average salary for the season. It is not a cap threshold — it is the dividing line used by the cap-hold table in § 3.10 (it decides whether a free agent's hold is set at the lower or higher tier).
Thresholds are updated via the league administration panel at the start of each salary cap year.
§ 1.2 Soft Cap 👁 manual review
A team's Team Salary may not exceed the Salary Cap at any time unless the team is using a recognized exception (MLE, bi-annual, room exception, or other CBA-defined exception). Transactions that would push a team over the cap without a valid exception are illegal.
The soft cap is enforced by commissioner review. The system does not yet automatically block over-cap signings that lack a valid exception — that check is on the validation roadmap.
§ 1.3 Hard Cap 🔒 system-enforced 👁 manual review
The Hard Cap is an absolute league-wide spending ceiling. No team's combined Team Salary — active player salaries plus dead cap — may exceed the Hard Cap at any point during the salary cap year, regardless of exceptions or prior transactions.
Additionally, individual teams may be hard-capped at a lower threshold — either the First Apron or the Second Apron — when they engage in certain transactions (see § 1.4). A team hard-capped at an apron cannot exceed that apron even if they remain below the league Hard Cap. Every team's effective ceiling is the lowest of: (a) the league Hard Cap, (b) any triggered apron lock.
The transaction system blocks any signing, trade, draft pick signing, or two-way conversion that would push a team over any applicable ceiling. The error message will identify which limit was breached and the projected overage.
Cap holds are excluded from Hard Cap and apron comparisons. A UFA/RFA cap hold is a placeholder that reserves a roster spot during free agency, not an active player salary — so it doesn't count toward "active player salaries" for the league Hard Cap, nor toward either apron threshold. Conditional-but-real salary (a year carrying a TEAM_OPT, PLAYER_OPT, or NON_GTD tag) is still real salary and still counts, as does dead cap. This is distinct from the plain Salary Cap and cap-room checks (§ 3.2, Room Exception eligibility, cap-space signings), which still include holds — those track actual spendable room, where an unrenounced hold still occupies room until cleared (§ 3.10).
Hard Cap Calculation
Each season, the Hard Cap is derived from historical NBA spending data using the following method:
- For each of the previous three NBA seasons, compute every team's total spending as a percentage of the NBA salary cap for that season. Total spending includes both active player salaries and dead cap.
- Identify the single highest percentage observed across all teams and all three seasons.
- Round that percentage up to the nearest whole number.
- Apply that percentage to the NBN salary cap for the current season to arrive at the Hard Cap dollar threshold.
The Hard Cap is set by the league office at the start of each salary cap year and recorded in Cap Settings. Because it is derived from NBA data rather than set proportionally like the aprons, it is not automatically pegged to cap increases.
Hard Cap Grace Period 👁 manual review
A franchise may begin a new league year with a Team Salary exceeding the Hard Cap only if both of the following conditions are met:
- The roster was already over the Hard Cap at the conclusion of the prior regular season.
- No moves were made during the offseason period — between the end of the regular season and the start of the new league year — that increased salary and pushed the team over the Hard Cap.
A franchise operating under the grace period is subject to strict transaction limits until cap compliance is achieved:
- Permitted: Player waivers; trades that result in a net reduction of Team Salary.
- Prohibited: Any signing of any kind; draft pick signings (picks may not be signed until the team is cap-compliant).
Compliance deadline: August 31st. A franchise in the grace period must achieve Hard Cap compliance before August 31st of that league year. Failure to comply by this date results in:
- All unsigned draft picks are forfeited.
- Franchise ownership is subject to disciplinary review and penalties at the discretion of the Board of Directors.
§ 1.4 Hard Cap Triggers 🔒 system-enforced
A team becomes hard-capped at an apron level when they engage in one of the following transactions. The hard cap persists for the remainder of that salary cap year.
| Row | Transaction | Hard Cap Applied |
| A | Signs or acquires a player via the Bi-Annual Exception (BAE) | First Apron |
| B | Signs or acquires a player via the Non-Taxpayer MLE (NTMLE) | First Apron |
| C | Acquires a player via sign-and-trade | First Apron |
| D | Signs a player mid-season whose prior contract (terminated that same Regular Season) carried a salary exceeding the NTMLE amount | First Apron |
| K | Signs a player via the Taxpayer MLE (TMLE) | Second Apron |
Rows A–D are unavailable to a team that has already used the TMLE that season. The TMLE trigger (Row K) supersedes and effectively encompasses those restrictions.
Additionally, a team below an apron that executes a trade where the incoming salary exceeds outgoing + $250,000 is hard-capped at the First Apron for the remainder of the season (contagion rule — see § 4.3). A team below the Second Apron that aggregates salaries in a trade is hard-capped at the Second Apron (see § 4.4).
Post-regular-season timing: A trade that would trigger a hard cap, when completed after the end of the regular season and before the start of the new league year (typically July 1), applies the hard cap to the following season rather than the current one. This rule took effect starting after the 2024–25 regular season.
§ 1.5 First Apron — Standing Restrictions 👁 manual review
A team whose salary is at or above the First Apron is subject to all of the following, regardless of transaction type:
- No NTMLE. The team may not use the Non-Taxpayer Mid-Level Salary Exception.
- No mid-season buyout signings above NTMLE. The team may not sign a player waived during the current Regular Season if that player's terminated contract carried a salary exceeding the full NTMLE amount.
- Trade salary-matching cap: outgoing + $250,000. When acquiring a player in a trade, the incoming salary may be at most the outgoing salary plus $250,000. Standard tiered matching (§ 4.2) does not apply above the First Apron.
§ 1.6 Second Apron — Standing Restrictions 👁 manual review
A team at or above the Second Apron is subject to all First Apron restrictions (§ 1.5), plus:
- No TMLE. The team may not use the Taxpayer Mid-Level Salary Exception.
- No salary aggregation in trades. The team may not combine multiple outgoing players' salaries to enable a higher-salaried incoming player. A Second Apron team may trade multiple players simultaneously only if the trade is legal even when matching each outgoing player individually. See § 4.4.
- Draft pick freeze. The team's first-round pick seven seasons out is frozen pending the four-year lookback determination. See § 7.3.
Roster Construction
§ 2.1 Standard Roster Size 🔒 system-enforced
During the regular season, a team's standard roster may not exceed 15 players. If a trade would push a receiving team's roster over 15 in-season, the team must release a player before the trade is processed.
Offseason ceiling: In the offseason the standard roster may carry up to 20 players; every team must trim back to 15 before the regular season begins. A trade that leaves a team at 16–20 standard players is permitted but flagged as a warning (the team is reminded to trim before the season). A trade that would leave any team above 20 is blocked — release a player first.
Roster minimum: Teams must carry at least 14 players on their standard roster year-round — in-season and offseason alike. This is a roster-construction requirement; see § 2.1a for how a shortfall is actually charged (the real charge only kicks in below 12, not 14 — but trade legality is judged against the full 14-player line).
Non-compliance strikes: If a team's roster is still below 14 players one week after the shortfall began, each FO member of the affected team receives an activity strike. Strikes continue accruing at the 2-week and 3-week marks if the shortfall still isn't fixed. Strikes are a front-office accountability measure, independent of the cap accounting in § 2.1a.
Simultaneous waiver restriction: A team at the 15-player maximum may not acquire a player and simultaneously waive another to remain at 15. A roster spot must exist before the acquisition is made. For example, a team with 14 players may not trade one player for three while simultaneously waiving one of the incoming players to land at 15 — the trade would leave the roster at 16, which exceeds the in-season limit.
§ 2.1a Empty Roster Charge 🔒 system-enforced
The 14-player roster minimum (§ 2.1) and the dollar charge for falling short of it are governed by two different floors, for two different purposes:
- Real charge — floor of 12. A team whose standard roster falls below 12 players — for any reason, at any point in the year — is charged an Empty Roster Charge for each open slot below 12 (not 14). The charge equals that season's 0-years-experience (rookie) minimum salary from the Minimum Salary Scale (§ 3.12) — for the current season, — per slot. It applies immediately, is not gated on the § 2.1 one-week grace period, shows up on the team's roster page as a line item named "Empty Roster Charge," and counts toward the team's real guaranteed salary — including Hard Cap and apron comparisons (§ 1.3–§ 1.6) — exactly as a real player contract would. It is a virtual placeholder, not tied to any real player or transaction: recomputed live from the team's actual roster count on every render, it disappears on its own once the team reaches 12 players — no transaction ever creates or removes one directly. A team sitting at 12 or 13 players carries no real charge.
- Trade-legality floor of 14. Separately, when the trade validator judges whether a proposed trade is legal, it doesn't use the 12-player floor above — it assumes the team will need to fill every open slot up to the full 14-player minimum, and folds that hypothetical cost into the team's projected salary before checking Hard Cap / apron limits (§ 4.3–§ 4.4, § 4.5). This is a wider, trade-specific assumption: a team can land at 12 or 13 players post-trade with no real charge on its books, but the trade math still has to treat the gap up to 14 as real money for the hard-cap comparison — otherwise a team could duck a hard cap by shedding headcount in a trade rather than actually paying for the roster spots it's short. Example: a team hard-capped at the First Apron completes a trade that leaves them $500,000 under the First Apron, but the trade also drops them to 13 standard players (no real charge — 13 is above the 12-player floor). For trade-legality purposes only, the validator still assumes 1 slot filled at the rookie minimum; if that hypothetical charge pushes projected salary over the First Apron, the trade is illegal, even though nothing would actually be added to the team's real books at 13 players.
§ 2.2 Two-Way Contracts
Teams may carry up to 3 Two-Way players in separate G-League roster slots outside the 15-man standard limit. Two-Way players in their G-League slot do not count toward the 14-player roster minimum.
Two-way contracts carry a salary of $0 and are not included in Team Salary for cap purposes. If a two-way player is converted to a standard contract (§ 6.1), their new salary begins counting against the cap from the date of conversion.
Eligibility: Players with 3 or fewer years of NBA experience are eligible for Two-Way contracts. A second-round pick may receive a Two-Way contract in lieu of a standard contract (see § 7.1).
Contract terms: Maximum length is 2 years. A team may keep the same player in a Two-Way spot for up to 2 consecutive years. Two-Way players are eligible to play in a maximum of 50 games per season. Bird Rights accumulate normally while on a Two-Way contract.
Conversion to a standard contract:
- A Two-Way player may be signed to a minimum contract matching the length of their previous contract at any time, provided a standard roster spot is available.
- Any other contract structure requires a pitch and bid through the free agency committee.
- A player converted from Two-Way to a standard contract is subject to a trade restriction of 3 months or December 15, whichever is earlier.
- A player on a standard contract may not be converted to a Two-Way spot.
Free Agent Signings
§ 3.1 Signing Using Cap Space 👁 manual review
A team with salary below the cap may sign free agents using their available cap space. Available cap space = Salary Cap − current Team Salary. Signings may not exceed available cap space unless the team is also using an exception (exceptions and cap space may not be combined — see § 3.2).
Eligibility windows, UFA/RFA designations, and RFA matching rights rules are pending documentation.
§ 3.2 Salary Cap Exceptions — Overview
A team at or above the cap may sign players using one of the exceptions below. A team's applicable exception depends on where their Team Salary falls relative to the cap and First Apron as of July 1:
| Zone | Condition on July 1 | Exception Available |
| Room | Team Salary is more than the full NTMLE amount below the Salary Cap | Room Exception |
| NTMLE | Team Salary is less than the full NTMLE below the cap and at least the full NTMLE below the First Apron | NTMLE |
| TMLE | Team Salary is less than the full NTMLE below the First Apron | TMLE |
The Room Exception assignment is locked on July 1. A team assigned the Room Exception cannot move out of it during that year, even if they later exceed the cap.
Exceptions and cap space may not be combined to offer a larger contract — they are separate mechanisms. A team with $4M of cap room and a $5M MLE cannot offer $9M; they must choose one.
Annual scaling: All MLE amounts (NTMLE, TMLE, Room Exception) increase each season at the same percentage rate as the overall salary cap.
§ 3.3 Non-Taxpayer Mid-Level Exception (NTMLE) 🔒 system-enforced
Maximum Year 1 salary: see § 1.1. Maximum contract length: 4 years. Annual raises/decreases: 5% of Year 1 (see § 3.9).
The MLE may be split across multiple signings as long as total value does not exceed the exception amount.
Hard-cap trigger: Using the NTMLE hard-caps the team at the First Apron for the remainder of the season (Row B). The system sets this automatically on signing and blocks any subsequent transaction that would push the team over that threshold.
The NTMLE is unavailable to teams at or above the First Apron (§ 1.5).
§ 3.4 Taxpayer Mid-Level Exception (TMLE) 🔒 system-enforced
Maximum Year 1 salary: see § 1.1. Maximum contract length: 2 years. Annual raises/decreases: 5% of Year 1.
The TMLE may be split across multiple signings within the exception amount.
Hard-cap trigger: Using the TMLE hard-caps the team at the Second Apron for the remainder of the season (Row K). The system sets this automatically and blocks all subsequent transactions that would push the team over the Second Apron.
Using the TMLE also prohibits the team from using the BAE or NTMLE for the rest of that salary cap year (see Rows A–D in § 1.4). The TMLE is unavailable to Second Apron teams (§ 1.6).
§ 3.5 Bi-Annual Exception (BAE) 🔒 system-enforced
Maximum Year 1 salary: see § 1.1. Maximum contract length: 2 years.
Restrictions:
- Available only to teams below the First Apron.
- Cannot be used in consecutive salary cap years — if the team used the BAE last year, it is unavailable this year.
- Cannot be used if the team has already used cap space or the Room Exception during that salary cap year.
Hard-cap trigger: Using the BAE hard-caps the team at the First Apron for the remainder of the season (Row A). The system sets this automatically.
The BAE expires unused at the end of the regular season. It is automatically refreshed on July 1 at the start of the new salary cap year, subject to the consecutive-year restriction above.
§ 3.6 Room Exception 👁 manual review
Maximum Year 1 salary: see § 1.1. Maximum contract length: 3 years.
Available only to teams whose July 1 Team Salary is more than the full NTMLE amount below the cap (see § 3.2). The Room Exception does not trigger a hard cap.
§ 3.7 Disabled Player Exception (DPE) 👁 manual review
Allows a team over the cap to sign a replacement for a player carrying an "Out for Season" injury designation (as shown in 2K). Three use cases:
- FA signing: 1-season contract only, for no more than the lesser of 50% of the disabled player's salary or the full NTMLE amount.
- Trade acquisition: Acquire a player in the last season of his contract, for no more than the lesser of 50% of the disabled player's salary + $250,000 or NTMLE + $250,000.
- Waiver claim: Claim a player in the last season of his contract, for no more than the lesser of 50% of the disabled player's salary or the full NTMLE amount.
Anti-abuse rule: A team may not trade for an injured player and then apply for the DPE on the basis of that player's injury. The disabled player must have been on the team's roster prior to the injury designation.
§ 3.8 Veteran Free Agent Exception (Bird Rights) 👁 manual review
A team may re-sign their own free agents using one of three Bird Rights tracks. Rights accrue when a player remains with the same team without clearing waivers or signing as a free agent in between:
- Qualifying Veteran FA (QVFA) — Full Bird Rights: Requires 3+ seasons with the same team. Up to the maximum salary. Contract up to 5 years. Annual raises/decreases governed by the 8% rule (see § 3.9).
- Early Qualifying Veteran FA (EQVFA) — Early Bird Rights: Requires 2+ seasons with the same team. Up to 175% of the player's previous season salary, not to exceed the maximum salary. Contract must be at least 2 years, up to 4 years. Annual raises governed by the 8% rule.
- Non-Qualifying Veteran FA (Non-QVFA) — Non-Bird Rights: Requires at most 1 season with the team. Up to the greatest of: 120% of the final-year salary, 120% of the applicable minimum, or (for RFAs) the qualifying offer amount. Contract up to 4 years. Annual raises governed by the 5% rule.
Gilbert Arenas Provision: If a player qualifies for Early Bird Rights (EQVFA), is a Restricted Free Agent, and has exactly 2 years of service, the retaining team may use their Early Bird rights to match an offer sheet received from another team — even if matching would put them over the cap. See § 3.15 for offer sheet procedures.
§ 3.9 Annual Raise / Decrease Limits 🔒 system-enforced
For all contracts, each year's salary after Year 1 may increase or decrease from the prior year by no more than a fixed percentage of the Year 1 salary. The percentage is always calculated off Year 1 — not the prior year — so raises and cuts are fixed dollar amounts across the life of the deal.
| Contract Type | Max Annual Raise / Decrease |
| Standard FA signing (non-Bird) / NTMLE / TMLE / BAE / Room | 5% of Year 1 salary |
| QVFA or EQVFA re-signing with Prior Team | 8% of Year 1 salary |
| Extension (all types except extend-and-trade) | 8% of Year 1 salary of extended term |
| Extend-and-trade (§ 8(e)(2)) | 5% of Year 1 salary of extended term |
| QVFA / EQVFA via sign-and-trade | 5% of Year 1 salary (Bird % does not apply in S&T) |
§ 3.10 Cap Holds 👁 manual review
A cap hold is a placeholder salary charged against a team's books to reserve a player's spot before a new contract is signed. It exists only while the player is unsigned: the moment the player signs a contract (or is renounced, or signs elsewhere), the hold is removed. A signed contract is not a hold — once a player signs, the contract's actual Year 1 cap figure counts, never the hold.
Veteran free-agent holds — amount by Bird Rights
When a player's contract expires and they become a free agent, the hold is a multiple of their previous salary (the salary of the most recently completed contract year), determined by Bird Rights status. Which tier a player falls into is set by years of continuous service with the team — Full Bird (QVFA) at 3+ seasons, Early Bird (EQVFA) at 2, Non-Bird (Non-QVFA) at 0–1; see § 3.8 for the qualification rules. These figures mirror the real NBA CBA exactly. The "above / at or below" split is measured against the Estimated Average Player Salary (EAPS) for the upcoming season — the projected league-average salary, not last year's actual average (the live figure is a per-season constant shown in § 1.1 and set in Cap Settings):
| Situation | Cap Hold Amount |
| Full Bird Rights (QVFA), previous salary above EAPS | 150% of previous salary |
| Full Bird Rights (QVFA), previous salary at or below EAPS | 190% of previous salary |
| Early Bird Rights (EQVFA) | 130% of previous salary |
| Non-Bird Rights (Non-QVFA) | 120% of previous salary |
| Off the final (4th) year of a rookie-scale contract, previous salary above EAPS | 250% of previous salary |
| Off the final (4th) year of a rookie-scale contract, previous salary at or below EAPS | 300% of previous salary |
| Coming off a minimum contract | Minimum salary, capped at the 2-year veteran minimum |
Two bounds and a mid-rookie-deal carve-out, all per the NBA CBA:
- A cap hold is never larger than the player's applicable maximum salary, nor smaller than the applicable minimum salary — the percentage is clamped to that range.
- The 250% / 300% rows apply only to a player completing the final year of a rookie-scale deal. A first-round pick still inside their rookie deal (after Year 1, 2, or 3) is not a free agent in NBN — those option years are carried as
TEAM_OPT holds under § 6.1, equal to the next year's rookie-scale amount, not a percentage of prior salary.
A team may renounce a cap hold to remove it from their books, forfeiting any associated Bird Rights.
Holds by situation
The table above gives the amount for a veteran free agent. The following summarizes which hold applies in each situation that puts a player on the books without a signed contract:
| Situation | Hold type | Hold amount |
| Expiring veteran contract — contract runs out and the player is not re-signed |
UFA or RFA |
Bird-tier multiple of previous salary (table above) |
| Declined option — a player or team option (§ 6.1) is declined, sending the player to free agency |
UFA or RFA |
Same as an expiring veteran contract: the Bird-tier multiple of the player's previous salary (the last contract year actually played, not the declined option amount). Declining an option does not forfeit Bird Rights. |
| RFA offer sheet outstanding — the player's own team holds them as an RFA while an offer sheet is pending (§ 3.15) |
RFA |
For the offering team: a hold equal to the full offer-sheet value until the match period concludes. For the retaining team: the RFA hold from the table above. |
| Unsigned first-round draft pick — rights held, player not yet signed (§ 7.1) |
— |
120% of the pick slot's rookie scale amount. Does not count as outgoing salary for trade matching. |
| Unsigned second-round pick / UDFA rights — rights held, player not yet signed (§ 7.1) |
— |
No standalone cap hold. Second-round picks are signed via the Second Round Exception (§ 7.1) and do not occupy a hold beforehand. |
| Incomplete roster — fewer than 12 players (Article II, § 2.1a) |
— |
An Empty Roster Charge equal to that season's rookie (0-years) minimum from the Minimum Salary Scale (§ 3.12) per open slot below 12 — applied immediately and year-round, counted as guaranteed salary, removed once the roster reaches 12. (Trade legality is judged against a wider 14-player floor — § 2.1a.) |
New contracts (draft pick or FA signing) carry no hold. The "hold for a new contract via a draft pick or free-agent signing" is just the placeholder above that the unsigned player occupies. Once the team actually signs the player — a drafted player via the sign-pick transaction (§ 7.1), or a free agent via a signing (§§ 3.1–3.8) — the hold drops off entirely and only the contract's real Year 1 salary counts against the cap.
Renounce (transaction): Renouncing is a tracked roster transaction — submit it from the Transactions page rather than editing a roster by hand. It removes the player's cap hold, takes them off the roster, and turns them into an unsigned free agent free to sign with any team. Because a player carrying only a cap hold is under no contract, a renounce creates no dead cap — this is what distinguishes it from a release (Article V). The team forfeits any Bird Rights to the player, and the player's prior-season earnings are retained as career history. Renounce applies only to a player whose contract has expired and who sits as a UFA or RFA hold: a player still under contract must instead be released (§ 5.1), and a player with an unexercised option must have that option declined (§ 6.1) before the resulting hold can be renounced.
Rescission after offer sheet: A team that renounces cap holds to create space for an RFA offer sheet may rescind (restore) those renouncements if the original team matches — except: (a) rescinding would move the team from below the cap to above it; or (b) the team is already above the cap and rescinding increases their cap figure further.
§ 3.11 Maximum Contracts 👁 manual review
The maximum Year 1 salary a player may receive depends on their years of NBA experience:
| Years of Experience | Maximum Year 1 Salary |
| 6 or fewer | 25% of the Salary Cap |
| 7–9 | 30% of the Salary Cap |
| 10 or more | 35% of the Salary Cap |
Standard annual raise limits apply (§ 3.9). Max contracts may be offered using cap space, Bird Rights, or qualifying exceptions.
§ 3.12 Minimum Contracts 🔒 system-enforced 👁 manual review
Minimum salaries mirror the NBA's minimum salary scale, indexed by years of NBA experience — set each season by the league office and recorded in the system, the same way the cap thresholds in § 1.1 are. The 0-years (rookie) row is also the figure used for the Empty Roster Charge (§ 2.1a).
| 0 years (rookie) | — |
| 1 year | — |
| 2 years | — |
| 3 years | — |
| 4 years | — |
| 5 years | — |
| 6 years | — |
| 7 years | — |
| 8 years | — |
| 9 years | — |
| 10+ years | — |
Players may be signed to a minimum contract at any time:
- 1-year minimum deal: The cap hit is equal to the 2-year veteran minimum (row above), regardless of the player's actual experience tier — the league reimburses the difference, mirroring the NBA's veteran-minimum hardship exception.
- Multi-year minimum deal: Each year's salary follows the scale above for the player's years of experience that season.
Undrafted free agents (UDFAs): A UDFA signed via the minimum exception to a standard contract is non-guaranteed until July 31. Before that date the team may waive the player with no dead cap (a contract void under § 5.1); on July 31 the contract becomes fully guaranteed. A UDFA may instead be signed to a Two-Way contract, which carries no cap hit (see § 2.2).
What's system-enforced: when a sign transaction is submitted with signing_method: "minimum" and a single salary year, the API infers the player's years of NBA experience from their real draft year and flags (as an overridable warning) any submitted amount that doesn't match the 2-year-capped figure above. Still manual review: multi-year minimum deals aren't checked against the per-year scale, and the experience inference has no independent source to verify against beyond draft year — the What If Mode roster sandbox (team pages) offers the same capped 1-yr Vet Min presets so a hypothetical signing matches this rule too.
§ 3.13 Contract Structure 👁 manual review
All contracts — free agent signings and extensions — may be structured as flat, back-loaded, or front-loaded, subject to the annual raise/decrease limits in § 3.9. A team with Full Bird Rights (QVFA) may structure up to an 8% annual change; all other contracts are limited to 5%. No season's salary may fall below the applicable minimum.
For a reference tool for building contract structures, see dangerc.art/contract-structures.
§ 3.14 Sign-and-Trade Rules 🔒 system-enforced 👁 manual review
A sign-and-trade (S&T) is a transaction in which a team signs their own free agent and immediately trades them to another team. General S&T salary-matching and apron restrictions are in §§ 4.2–4.3. The following additional rules apply:
Eligibility:
- The player must have at least Early Bird Rights (EQVFA) with the signing team — minimum 2 seasons with the same team, without clearing waivers or signing as a free agent in between.
- The signing team must satisfy all applicable cap hold requirements before the signing.
- A team that has already used the Taxpayer MLE that season may not participate in an S&T.
Contract requirements:
- The contract must be 3 or 4 years in length. 5-year deals are not permitted in sign-and-trades.
- Annual raises are limited to 5% of Year 1 (Bird Rights 8% rate does not apply in S&Ts — see § 3.9).
- The MLE may not be used to fund any portion of an S&T contract.
Timing and process:
- Must be completed before the start of the regular season.
- Once submitted to the committee, an S&T cannot be withdrawn.
- Up to 3 different S&T offers may be submitted for a single free agent across different acquiring teams.
Hard-cap effect: Using an S&T hard-caps the receiving team at the First Apron (§ 1.4, Row C). The receiving team may not be above the First Apron at the conclusion of the trade (§ 4.3).
What's system-enforced: when the trade builder is given the proposed contract terms, it checks contract length (3–4 years), the 5% raise cap, that the MLE doesn't fund any part of the deal, that the signing team hasn't already used the Taxpayer MLE this season, and the receiving-team First Apron restriction (§ 4.3) — plus the same hard-cap/roster-size checks a normal signing gets. Still manual review: Early Bird Rights (EQVFA) eligibility is self-declared by whoever submits the trade, not independently verified against real tenure history; and "the signing team must satisfy all applicable cap hold requirements" is enforced by the separate `sign` transaction's own validation, not by the trade check itself.
§ 3.15 Restricted Free Agents — Offer Sheets & Matching 🔒 system-enforced 👁 manual review
A player becomes a Restricted Free Agent (RFA) when their team issues a Qualifying Offer at the end of their contract and the player does not accept. The retaining team holds the right to match any offer sheet.
Offer sheets:
- Any team may sign an RFA to an offer sheet. The offer must be for at least 2 guaranteed years.
- The offering team has a cap hold equal to the offer sheet value placed on their books until the matching period concludes.
- The retaining team has 48 hours to match. If matched, the player remains. If not matched within 48 hours, the player signs with the offering team.
Renouncement and rescission: A team may renounce cap holds to create space for an offer sheet. If the retaining team matches, the offering team may rescind those renouncements (see § 3.10 for restrictions).
RFA via S&T: Under the Gilbert Arenas Provision (§ 3.8), a team with Early Bird Rights may use those rights to match an offer sheet for an RFA with 2 years of service.
What's system-enforced: a single offer_sheet transaction records the offer and outcome and immediately applies it — it validates the player is a real RFA (not UFA) hold, the offer covers at least 2 contract years, and the offering team isn't the player's own team, then signs the player to the offered contract (retaining team on a match, offering team otherwise). Still manual review: the 48-hour match clock and the offering team's temporary offer-value cap hold aren't modeled — everything is entered after the outcome is known. Rescission of renouncements on a match isn't implemented yet (no rescind_renounce transaction type); do it by hand.
Trades
§ 4.1 Tradeable Assets
Trades may include players and draft picks only.
- Cash is not a tradeable asset in NBN. No cash considerations may be attached to any trade.
- Trade Exceptions (TPEs) are not themselves tradeable. A TPE is banked by the team that sends out more salary than it receives in a trade — see § 4.1a. It belongs solely to the banking team and cannot be included as an asset in a subsequent trade.
§ 4.1a Trade Exceptions (TPE) 🔒 system-enforced 👁 manual review
When a team sends out more salary than it receives in a trade, it is credited with a Trade Exception equal to the difference (outgoing salary − incoming salary). The exception expires one year (365 days) from the date of the trade that created it; any unused balance is forfeited at expiration.
A TPE may be used to acquire a player — via trade or waiver claim — whose salary is at or below the exception's remaining balance, without sending matching salary back. It cannot be combined with other exceptions, or with outgoing salary, in the same acquisition. Using a TPE does not itself trigger a hard cap.
Not itself tradeable (see § 4.1): a TPE stays with the team that banked it and cannot be packaged into another trade.
Creation and balance tracking are currently manual — entered from the league's roster/cap spreadsheet rather than computed automatically from trade transactions. Consuming a TPE in a trade is system-enforced: the trade builder checks the exception's remaining balance and expiration date, rejects combining it with another exception or with outgoing salary, and decrements the balance on submission.
§ 4.2 Salary Matching — Below the First Apron 🔒 system-enforced
For teams below the First Apron, the maximum incoming salary in a trade is determined by the total outgoing salary using three tiers:
| Outgoing Salary | Max Incoming Salary |
| $0 – $8,527,000 | 200% of outgoing + $250,000 |
| $8,527,001 – $29,000,000 | Outgoing + $8,527,000 |
| Above $29,000,000 | 125% of outgoing + $250,000 |
Minimum contract exception: A player on a minimum contract of 2 seasons or fewer does not count as incoming salary for matching purposes. A minimum contract of more than 2 seasons does count.
Base Year Compensation (BYC): Applies when a player is sent out in a sign-and-trade and meets all four criteria: Bird/Early Bird FA of the sending team; salary above minimum; raise greater than 20%; signing team at or above the cap after signing. When BYC applies, the sending team's outgoing credit is the greater of the player's previous salary or 50% of his new salary. The receiving team still counts the full new salary as incoming.
Cap-room absorption: A team whose Team Salary is below the Salary Cap may instead acquire a player using its own cap room, without regard to the tiers above — no outgoing salary is required. This applies whenever the team's Team Salary, after the trade (outgoing removed, incoming added), remains at or below the Cap. This is evaluated fresh for each trade off the team's actual room at that moment — it is a live substitute for matching, not a stored exception (unlike the TPE, § 4.1a). If room alone isn't enough to cover the incoming salary, the standard tiered limit (using any outgoing salary sent) is checked as a fallback.
§ 4.2a MLE Trade Absorption 🔒 system-enforced
A team may absorb incoming trade salary using its remaining season MLE balance (Non-Taxpayer MLE, Taxpayer MLE, Room Exception, or Bi-Annual Exception) in lieu of matching outgoing salary. Under this path, incoming salary must not exceed the exception's remaining amount for the season (full amount minus any already used, from signings or prior trades) — outgoing salary sent back is not a factor.
Eligibility mirrors free-agent use of the same exception (§§ 3.2–3.5): the Non-Taxpayer MLE is unavailable to a team at or above the First Apron (§ 1.5); the Taxpayer MLE is unavailable to a team at or above the Second Apron (§ 1.6, § 3.4); the Room Exception is available only to a team whose Team Salary is more than the full NTMLE amount below the Cap (§ 3.2); the Bi-Annual Exception is unavailable to a team at or above the First Apron, cannot be used in consecutive salary cap years, and cannot be used if the team has already used cap space or the Room Exception that year (§ 3.5). Eligibility is checked against the team's Team Salary before the trade.
Hard-cap trigger: Using the NTMLE this way hard-caps the team at the First Apron for the remainder of the season, same as an NTMLE signing (§ 3.3). Using the TMLE hard-caps the team at the Second Apron (§ 3.4). Using the BAE hard-caps the team at the First Apron, same as a BAE signing (§ 3.5). The Room Exception triggers no hard cap.
This is distinct from cap-room absorption above and from using a TPE (§ 4.1a) — a team uses exactly one of the four for a given incoming player. MLE trade absorption draws from the team's shared season MLE balance, the same balance signings draw from (§ 3.1); it does not create or consume a Trade Exception.
§ 4.3 First Apron — Trade Rules 🔒 system-enforced
A team at or above the First Apron may only acquire a player whose incoming salary is at most the outgoing salary plus $250,000. Standard tiered matching (§ 4.2) does not apply.
Contagion rule: A team currently below the First Apron that executes a trade where incoming salary exceeds outgoing + $250,000 is hard-capped at the First Apron for the remainder of the season as a result of that trade.
Sign-and-trade receiving restriction: A team receiving a player via sign-and-trade may not be above the First Apron at the conclusion of the trade. A team already above the First Apron may receive in a sign-and-trade only if the outgoing salary in the deal brings them under the threshold.
§ 4.4 Second Apron — Trade Rules 🔒 system-enforced
A team at or above the Second Apron may not aggregate salaries in a trade. Trading multiple players simultaneously is permitted only if each player's salary independently satisfies the salary match for the incoming players — combining multiple outgoing salaries to acquire a single higher-salaried player is prohibited.
Contagion rule: A team below the Second Apron that aggregates salaries in a trade (combining multiple outgoing players to enable a larger incoming salary) is hard-capped at the Second Apron for the remainder of the season.
§ 4.5 Trade Restrictions 👁 manual review
Re-acquisition restriction: A team may not re-acquire a player they previously traded away until the following free agency period, regardless of how the original trade was structured.
Newly signed player restriction: A player signed as a free agent may not be traded until both of the following are met: (1) at least 90 days have elapsed since signing, and (2) December 15 of the current season has passed. The trade window opens on whichever date is later.
Roster size: In-season, receiving teams over 15 must release a player before the trade can be recorded; in the offseason a team may land at 16–20 (flagged as a warning, to be trimmed before the season), but no trade may leave a team above 20 (see § 2.1). A trade is not blocked purely for leaving a team below the 14-player minimum — but the trade math still assumes every open slot up to 14 gets filled at the rookie minimum, immediately, for hard-cap comparison purposes only (§ 2.1a). That hypothetical cost counts toward the team's Hard Cap and apron figures and can independently make the trade illegal, even for a team at 12–13 players that wouldn't carry any real Empty Roster Charge on its actual books.
Contract option travel: When a player is traded, all option provisions (team options, player options, non-guaranteed years) travel with the player to the new team unchanged.
Trade limit: Each team may make at most 15 trades per season. Draft day trades and one additional trade made on trade deadline day are exempt from this limit. Effective 2026-27.
§ 4.6 Multi-Team Trades — The Touch Rule 👁 manual review
In a trade involving three or more teams, each team must "touch" at least two other teams in the trade. A team touches another team when at least one qualifying asset flows between them in either direction.
Qualifying assets for a touch:
- An active player contract (standard or two-way).
- A future pick that will actually convey — must have a realistic path to conveying as a first-round pick. A heavily protected pick (e.g. top-55) does not qualify. A pick with a top-10 protection that converts to a second if it doesn't convey does qualify.
- Draft rights to an actual NBA prospect — rights to a player with a reasonable chance of reaching the NBA, or who is currently contributing in a reputable professional league.
A draft pick that stays with its original team (traded away and immediately returned in the same deal) does not count as a touch.
Contract Options & Extensions
§ 6.1 Player & Team Options 👁 manual review
Player Option (PLAYER_OPT): The player holds the right to extend the contract into the option year at the specified salary. If exercised, the option year becomes fully guaranteed and the option hold is cleared. If declined, the player enters free agency.
Team Option (TEAM_OPT): The team holds the right to retain the player at the option year salary. If exercised, the year is guaranteed and the hold is cleared. If declined, the player enters free agency.
Guaranteeing a non-guaranteed year (NON_GTD): A team may convert a non-guaranteed contract year to fully guaranteed at any time via the guarantee transaction type — one year at a time. The full salary for that year becomes the guaranteed amount, the NON_GTD hold is cleared, and any guarantee date or step schedule for the year is dropped. This is distinct from an option: there is no decline path and it does not create a free-agent hold; it simply locks in salary the team would otherwise still owe only on release before the guarantee date (see § 5.2). A team that instead lets a guarantee date pass without acting still owes the full salary on a later release, but the contract continues to read NON_GTD until explicitly guaranteed.
Two-way conversion: A two-way player may be converted to a standard contract via the convert_twoway transaction type. The new contract must comply with applicable cap rules and the team must have either cap space or a valid exception. The player's roster slot moves from the two-way pool to the standard 15-man roster.
Option exercise and decline deadlines are pending documentation.
§ 6.2 Extensions 👁 manual review
Eligibility:
- The player's existing contract must be at least 3 years in total length.
- The extension may only be negotiated in the final year of the contract, or in Year 4 of a 5-year contract.
- The player must have at least 2 years of service with the current team, or hold Bird Rights with the team via trade.
- Extensions may not be offered at the league minimum.
- All extension amounts must comply with salary cap and Bird Rights rules.
Extension terms:
- Minimum length: 2 years guaranteed.
- Maximum Year 1 salary of the extended term: 140% of the player's prior salary or 140% of the estimated average salary, whichever applies.
- Annual raises: up to 8% of Year 1 of the extended term (§ 3.9). Extend-and-trade: up to 5%.
- May include player option years.
- Extension salary begins after the final fully guaranteed year of the original contract. Regardless of when signed, the new salary always kicks in the following season after finalization.
Trade restriction: A player who signs an extension may not be traded for 6 months from the announcement date.
Conditional trade + extension: If Team B wants to acquire a player only upon that player agreeing to an extension, Team A (the sending team) must submit the extension pitch on Team B's behalf. The trade is only submitted if the player agrees to the extension.
§ 6.3 Extension Submission Windows & Process 👁 manual review
Rookie Scale Extension: Former first-round picks entering the fourth and final year of their rookie deal are eligible.
- Window: any time up to the day before the regular season starts.
- Submit proposal via the committee email; committee head initiates the discussion.
- If rejected, the team may resubmit at any point before the deadline.
- If no agreement by the deadline: no further extension opportunities arise for that player.
Veteran Extension (not on expiring contract): Veterans under a multi-year deal not in their final year.
- Window: any time up to the day before the regular season starts.
- Submit via committee email; committee head initiates discussion.
- If rejected, the team may resubmit before the deadline. If no agreement by the deadline: no further extension opportunities.
Veteran Extension (expiring contract): A veteran in the final year of their deal may negotiate throughout the league year.
- Window: any time up to June 30 (the day before free agency begins).
- The team has a maximum of 3 total proposals for any one negotiation.
- After 3 rejected proposals: no further extension opportunities arise.
The Draft
§ 7.1 Format & Rookie Contracts 👁 manual review
The draft has 2 rounds. The number of picks per round equals the current number of teams in the league (currently 30, but dynamic — any system referencing pick counts must derive the total from the current team count, not treat 30 as fixed).
First-round picks — signing deadline: August 31:
- 4-year contract at 120% of the NBA rookie scale amount for the pick slot. Scale amounts tier by pick number and index to the salary cap (a 5% cap increase means a 5% scale increase).
- Years 1 and 2 are fully guaranteed. Year 3: team option. Year 4: team option (available only if Year 3 was exercised).
- Cap hold: A cap hold equal to 120% of the rookie scale amount is placed on the team's books until the player is signed or the rights are forfeited. This cap hold does not count as outgoing salary for trade matching purposes.
Second-round picks — signing deadline: September 6:
Teams sign their second-round picks using the Second Round Exception, without spending cap room or other exceptions. Contract options:
3-year deal:
- Year 1: minimum salary for a player with 1 year of NBA experience
- Year 2: 2nd-year rookie minimum (non-guaranteed)
- Year 3: 3rd-year rookie minimum (team option)
4-year deal:
- Year 1: minimum salary for a player with 2 years of NBA experience
- Year 2: 2nd-year minimum for a player with 1 year of experience
- Year 3: 3rd-year rookie minimum (non-guaranteed)
- Year 4: 4th-year rookie minimum (team option)
Two-way contract: A second-round pick may also receive a Two-Way contract in lieu of a standard deal (see § 2.2).
Retaining unsigned draft rights: A team may leave a pick unsigned (retaining the player's rights for a future season) only if the player is not in the current version of NBA 2K and is sitting out of organized basketball in real life for the following season. Injury alone does not qualify.
§ 7.2 Pick Trading Restrictions 👁 manual review
Stepien Rule: A team may not trade away first-round picks in consecutive draft years. Every team must retain the ability to make a first-round selection at least once every two years. A proposed trade is illegal if, after the trade, the team would have no first-round pick in two or more consecutive draft years.
Trading the right to make a selection after already holding the pick (post-draft, after the team has made their selection) does not count as trading away a first-round pick for Stepien Rule purposes.
7-year advance limit: Draft picks may only be traded up to 7 years in advance of the current season. A pick further than 7 years out may not be included in any trade.
§ 7.3 Second Apron Draft Pick Restrictions 👁 manual review
Applies beginning with the 2024–25 Salary Cap Year.
Step 1 — Trading freeze: When a team is a Second Apron Team for a given salary cap year, their first-round pick 7 seasons out is immediately frozen. The team may not trade it (conditionally or unconditionally) until Step 2 is resolved.
Which pick is frozen? Count 7 seasons forward from the season within the triggering cap year. The frozen pick is the first draft following that 7th season. (Example: Second Apron Team in 2024–25 → 7th following season is 2031–32 → frozen pick is the 2032 first-round pick.)
Step 2 — Four-year lookback: penalty or release: Look at the four salary cap years immediately following the triggering year.
- Outcome A (penalty — ≥ 2 of 4 years are Second Apron): The frozen pick is moved to the final slot in the first round of the applicable draft. If multiple teams have this penalty in the same draft, they pick among themselves in inverse order of winning percentage (worst record picks last overall).
- Outcome B (no penalty — fewer than 2 of 4 years are Second Apron): The freeze lifts — the team may trade the pick — as of the day following the last Regular Season game of the 3rd non-Second-Apron year among those four.
§ 7.4 International Player Rights 👁 manual review
When a team drafts a player who is currently playing in an overseas league rather than the NBA, they retain that player's NBN rights for as long as the player remains overseas.
Eligibility: Only drafted players under an active overseas contract qualify. A player who has not signed with any team overseas (due to injury or otherwise) does not qualify — rights are retained only for players actively playing in a professional league abroad.
Triggering event: When the player signs an NBA contract in real life, the NBN team has 30 days to decide whether to sign the player or release the rights.
| Draft Year | Contract Terms Available | If Team Declines |
| 2019 or earlier | Sign to the same deal the player received in the NBA | Player becomes a UFA |
| 2020 or later | Sign to a rookie scale contract based on draft position (§ 7.1) | Player becomes a UFA |
Teams must notify the league of their decision within 30 days of the player's NBA signing. Failure to respond within the window results in the player becoming a UFA.