Calculator API

Illustrative fund math, no auth required

Seven stateless POST endpoints — the same deterministic engines behind the free tools at /tools.

Fund Health Check

POST/api/v1/calc/fund-health-checkPermalink →Try the free tool →

A free, 60-second operational health score for your crypto fund.

NameTypeRequiredDescription
aumUsdnumberOptional
positionsCsvstringOptional
mgmtFeePctnumberOptional
perfFeePctnumberOptional
hasHwmbooleanOptional
hurdlePctunknownOptional
navFrequency"daily" | "weekly" | "monthly" | "quarterly"Optional
reconFrequency"daily" | "weekly" | "monthly" | "rarely"Optional
lpReportingFrequency"monthly" | "quarterly" | "adhoc"Optional
backOfficeHeadcountnumberOptional
hasFundAdminbooleanOptional
hasAnnualAuditbooleanOptional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/fund-health-check" \
  -H "Content-Type: application/json" \
  -d '{"aumUsd":25000000,"positionsCsv":"","mgmtFeePct":2,"perfFeePct":20,"hasHwm":true,"hurdlePct":null,"navFrequency":"monthly","reconFrequency":"monthly","lpReportingFrequency":"quarterly","backOfficeHeadcount":1,"hasFundAdmin":true,"hasAnnualAudit":false}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/fund-health-check", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "aumUsd": 25000000,
  "positionsCsv": "",
  "mgmtFeePct": 2,
  "perfFeePct": 20,
  "hasHwm": true,
  "hurdlePct": null,
  "navFrequency": "monthly",
  "reconFrequency": "monthly",
  "lpReportingFrequency": "quarterly",
  "backOfficeHeadcount": 1,
  "hasFundAdmin": true,
  "hasAnnualAudit": false
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/fund-health-check
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/fund-health-check",
    json={"aumUsd": 25000000, "positionsCsv": "", "mgmtFeePct": 2, "perfFeePct": 20, "hasHwm": True, "hurdlePct": None, "navFrequency": "monthly", "reconFrequency": "monthly", "lpReportingFrequency": "quarterly", "backOfficeHeadcount": 1, "hasFundAdmin": True, "hasAnnualAudit": False},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(12)
"aumUsd": 25000000
"positionsCsv": ""
"mgmtFeePct": 2
"perfFeePct": 20
"hasHwm": true
"hurdlePct": null
"navFrequency": "monthly"
"reconFrequency": "monthly"
"lpReportingFrequency": "quarterly"
"backOfficeHeadcount": 1
"hasFundAdmin": true
"hasAnnualAudit": false

Exposure Analysis

POST/api/v1/calc/exposure-analysisPermalink →Try the free tool →

Paste your positions, see gross, net, and concentration exposure instantly.

NameTypeRequiredDescription
positionsCsvstringOptional
navUsdunknownOptional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/exposure-analysis" \
  -H "Content-Type: application/json" \
  -d '{"positionsCsv":"Asset,Value,Venue,Class\nBTC,450000,Coinbase,crypto\nETH,280000,Coinbase,crypto\nSOL,95000,Binance,crypto\nAVAX,60000,Binance,crypto\nLINK,40000,Kraken,crypto\nMATIC,-55000,Binance,crypto\nUSDC,180000,Coinbase,stablecoin\nUSDT,45000,Kraken,stablecoin","navUsd":null}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/exposure-analysis", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "positionsCsv": "Asset,Value,Venue,Class\nBTC,450000,Coinbase,crypto\nETH,280000,Coinbase,crypto\nSOL,95000,Binance,crypto\nAVAX,60000,Binance,crypto\nLINK,40000,Kraken,crypto\nMATIC,-55000,Binance,crypto\nUSDC,180000,Coinbase,stablecoin\nUSDT,45000,Kraken,stablecoin",
  "navUsd": null
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/exposure-analysis
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/exposure-analysis",
    json={"positionsCsv": "Asset,Value,Venue,Class\nBTC,450000,Coinbase,crypto\nETH,280000,Coinbase,crypto\nSOL,95000,Binance,crypto\nAVAX,60000,Binance,crypto\nLINK,40000,Kraken,crypto\nMATIC,-55000,Binance,crypto\nUSDC,180000,Coinbase,stablecoin\nUSDT,45000,Kraken,stablecoin", "navUsd": None},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(2)
"positionsCsv": "Asset,Value,Venue,Class BTC,450000,Coinbase,crypto ETH,280000,Coinbase,crypto SOL,95000,Binance,crypto AVAX,60000,Binance,crypto LINK,40000,Kraken,crypto MATIC,-55000,Binance,crypto USDC,180000,Coinbase,stablecoin USDT,45000,Kraken,stablecoin"
"navUsd": null

Hedge Fund Fee Calculator

POST/api/v1/calc/fee-calculatorPermalink →Try the free tool →

See exactly what a 2/20 (or any) fee structure costs an LP over time.

NameTypeRequiredDescription
startingNavUsdnumberOptional
annualGrossReturnPctnumberOptional
mgmtFeePctnumberOptional
perfFeePctnumberOptional
hurdlePctnumber | nullOptional
hasHwmbooleanOptional
crystallization"annual" | "quarterly"Optional
horizonYearsnumberOptional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/fee-calculator" \
  -H "Content-Type: application/json" \
  -d '{"startingNavUsd":25000000,"annualGrossReturnPct":15,"mgmtFeePct":2,"perfFeePct":20,"hurdlePct":null,"hasHwm":true,"crystallization":"annual","horizonYears":5}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/fee-calculator", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "startingNavUsd": 25000000,
  "annualGrossReturnPct": 15,
  "mgmtFeePct": 2,
  "perfFeePct": 20,
  "hurdlePct": null,
  "hasHwm": true,
  "crystallization": "annual",
  "horizonYears": 5
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/fee-calculator
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/fee-calculator",
    json={"startingNavUsd": 25000000, "annualGrossReturnPct": 15, "mgmtFeePct": 2, "perfFeePct": 20, "hurdlePct": None, "hasHwm": True, "crystallization": "annual", "horizonYears": 5},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(8)
"startingNavUsd": 25000000
"annualGrossReturnPct": 15
"mgmtFeePct": 2
"perfFeePct": 20
"hurdlePct": null
"hasHwm": true
"crystallization": "annual"
"horizonYears": 5

Fund Operating Cost Calculator

POST/api/v1/calc/operating-cost-calculatorPermalink →Try the free tool →

Add up what your fund's back office actually costs every year.

NameTypeRequiredDescription
financeHireUsdnumberOptional
fundAdminUsdnumberOptional
complianceUsdnumberOptional
riskDeskUsdnumberOptional
lpReportsPerYearnumberOptional
costPerReportUsdnumberOptional
auditUsdnumberOptional
legalUsdnumberOptional
softwareUsdnumberOptional
aumUsdnumberOptional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/operating-cost-calculator" \
  -H "Content-Type: application/json" \
  -d '{"financeHireUsd":120000,"fundAdminUsd":100000,"complianceUsd":80000,"riskDeskUsd":40000,"lpReportsPerYear":12,"costPerReportUsd":8000,"auditUsd":0,"legalUsd":0,"softwareUsd":0,"aumUsd":25000000}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/operating-cost-calculator", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "financeHireUsd": 120000,
  "fundAdminUsd": 100000,
  "complianceUsd": 80000,
  "riskDeskUsd": 40000,
  "lpReportsPerYear": 12,
  "costPerReportUsd": 8000,
  "auditUsd": 0,
  "legalUsd": 0,
  "softwareUsd": 0,
  "aumUsd": 25000000
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/operating-cost-calculator
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/operating-cost-calculator",
    json={"financeHireUsd": 120000, "fundAdminUsd": 100000, "complianceUsd": 80000, "riskDeskUsd": 40000, "lpReportsPerYear": 12, "costPerReportUsd": 8000, "auditUsd": 0, "legalUsd": 0, "softwareUsd": 0, "aumUsd": 25000000},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(10)
"financeHireUsd": 120000
"fundAdminUsd": 100000
"complianceUsd": 80000
"riskDeskUsd": 40000
"lpReportsPerYear": 12
"costPerReportUsd": 8000
"auditUsd": 0
"legalUsd": 0
"softwareUsd": 0
"aumUsd": 25000000

Back-Office Savings Calculator

POST/api/v1/calc/back-office-savingsPermalink →Try the free tool →

See what part of your back-office spend is realistically automatable.

NameTypeRequiredDescription
financeHireUsdnumberOptional
fundAdminUsdnumberOptional
complianceUsdnumberOptional
riskDeskUsdnumberOptional
lpReportsPerYearnumberOptional
costPerReportUsdnumberOptional
auditUsdnumberOptional
legalUsdnumberOptional
softwareUsdnumberOptional
aumUsdnumberOptional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/back-office-savings" \
  -H "Content-Type: application/json" \
  -d '{"financeHireUsd":120000,"fundAdminUsd":100000,"complianceUsd":80000,"riskDeskUsd":40000,"lpReportsPerYear":12,"costPerReportUsd":8000,"auditUsd":0,"legalUsd":0,"softwareUsd":0,"aumUsd":25000000}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/back-office-savings", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "financeHireUsd": 120000,
  "fundAdminUsd": 100000,
  "complianceUsd": 80000,
  "riskDeskUsd": 40000,
  "lpReportsPerYear": 12,
  "costPerReportUsd": 8000,
  "auditUsd": 0,
  "legalUsd": 0,
  "softwareUsd": 0,
  "aumUsd": 25000000
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/back-office-savings
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/back-office-savings",
    json={"financeHireUsd": 120000, "fundAdminUsd": 100000, "complianceUsd": 80000, "riskDeskUsd": 40000, "lpReportsPerYear": 12, "costPerReportUsd": 8000, "auditUsd": 0, "legalUsd": 0, "softwareUsd": 0, "aumUsd": 25000000},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(10)
"financeHireUsd": 120000
"fundAdminUsd": 100000
"complianceUsd": 80000
"riskDeskUsd": 40000
"lpReportsPerYear": 12
"costPerReportUsd": 8000
"auditUsd": 0
"legalUsd": 0
"softwareUsd": 0
"aumUsd": 25000000

LP Report Grader

POST/api/v1/calc/lp-report-graderPermalink →Try the free tool →

Grade your monthly LP update against what institutional investors expect.

NameTypeRequiredDescription
reportTextstringOptional
reportingFrequency"monthly" | "quarterly" | "adhoc"Optional
cURL
curl -s -X POST "https://nyxchain.org/api/v1/calc/lp-report-grader" \
  -H "Content-Type: application/json" \
  -d '{"reportText":"","reportingFrequency":"monthly"}'
JavaScript
const res = await fetch("https://nyxchain.org/api/v1/calc/lp-report-grader", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "reportText": "",
  "reportingFrequency": "monthly"
}),
})
const data = await res.json()
Python
# POST https://nyxchain.org/api/v1/calc/lp-report-grader
import requests

res = requests.post(
    "https://nyxchain.org/api/v1/calc/lp-report-grader",
    json={"reportText": "", "reportingFrequency": "monthly"},
)
data = res.json()
Try It
Request body (JSON)
Sample response
Object(2)
"reportText": ""
"reportingFrequency": "monthly"

FAQ

Questions, answered

Is there an API to calculate hedge fund fees?

Yes. POST /api/v1/calc/fee-calculator computes management and performance fees — including high-water mark and hurdle logic — from your fund's own inputs, with no authentication and no fund connection required. Results are illustrative estimates, not accounting or tax advice.

Is there a crypto fund fee calculator API?

Yes. The same POST /api/v1/calc/fee-calculator endpoint is a stateless, illustrative crypto fund fee calculator — pass management fee rate, performance fee rate, NAV, and prior high-water mark, and get back the fee breakdown, with no auth and no fund connection required.

Is there a high-water mark calculation API?

Yes, the same fee-calculator endpoint (POST /api/v1/calc/fee-calculator) applies a per-series high-water mark so performance fees accrue only on gains above the prior peak NAV — pass in your NAV history and fee terms and get back the fee breakdown.

Do the Nyx Fund calculator endpoints require an API key?

No. All seven calculator endpoints — fee, NAV validation, exposure analysis, operating cost, back-office savings, fund health, and LP report grading — are stateless and open with no authentication; an optional nyx_dk_ key only raises your daily rate limit.

Are the calculator API results real fund figures?

No. Every calculator endpoint returns illustrative estimates computed only from the arguments you pass in that single call — nothing is stored and nothing is tied to a real fund. Connect your exchanges in the full Nyx Fund product for live, audited figures.

What calculators does the Nyx Fund API expose?

Seven: the fee calculator (with high-water mark), NAV validator, exposure analysis, operating cost calculator, back-office savings calculator, fund health check, and LP report grader — the same deterministic engines behind the free tools at nyxchain.org/tools.

What's the rate limit on the free calculator API?

Five hundred requests per day with no card required, per caller. Passing an nyx_dk_ developer key raises that limit under the $49-a-month Developer plan or the bundled Platform plan.