get_position_performance
Compute holding-period return and realized fee APR for a Raydium CLMM position NFT from finalized history and current on-chain state (not Raydium pool 24h feeApr). Prefer token-native metrics: for same-asset RWA wrap pairs (e.g. SPCXx/SPCX) report TE in the plain/base ticker using current tick mid (1.0001^tick×10^(decA−decB)), plus raw A/B inventory, holdingDays, feeOnlyAprPct and annualizedReturnPct (HPR×365/days; feesEarned/deposited×365/days). USD is optional/secondary (Jupiter Price v3 / Raydium stable-leg, labeled current — not historical). Discovers open/increase/decrease txs via personal-position signatures + Anchor events + current equity. After submitting a position transaction, use refreshHistory=true and historyAfterSignatures to require its finalized history. Read-only.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"positionMint": "<positionMint>"
},
"name": "get_position_performance"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Optional wallet to verify NFT ownership (does not change math) | |
| skipPricing | No | If true, skip Jupiter/Raydium USD pricing (token-native / TE metrics still computed) | |
| positionMint | Yes | Position NFT mint address (from list_positions) | |
| maxSignatures | No | Max personal-position signatures to scan (1-500, default 100) | |
| refreshHistory | No | Force a fresh history read after a transaction | |
| historyAfterSignatures | No |