# Get all user KVault positions Get a list of user positions for each Kamino Earn Vault the user has currently deposited into. Returns staked and unstaked shares. Endpoint: GET /kvaults/users/{pubkey}/positions Version: 1.0.0 ## Path parameters: - `pubkey` (string, required) Valid base58-encoded address of the user wallet Example: "AxqtG9SHDkZTLSWg81Sp7VqAzQpRqXtR9ziJ3VQAS8As" ## Response 200 fields (application/json): - `address` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state` (object, required) - `state.vaultAdminAuthority` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.baseVaultAuthority` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.baseVaultAuthorityBump` (number, required) Bump seed for the base vault authority - `state.tokenMint` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.tokenMintDecimals` (number, required) Decimals of the token mint - `state.tokenVault` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.tokenProgram` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.sharesMint` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.sharesMintDecimals` (number, required) Decimals of the shares mint - `state.tokenAvailable` (string, required) Amount of tokens available in the vault - `state.sharesIssued` (string, required) Total shares issued by the vault - `state.availableCrankFunds` (string, required) Available crank funds in the vault - `state.performanceFeeBps` (number, required) Performance fee in basis points - `state.managementFeeBps` (number, required) Management fee in basis points - `state.lastFeeChargeTimestamp` (number, required) Timestamp of the last fee charge - `state.prevAum` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.pendingFees` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.vaultAllocationStrategy` (array, required) List of vault allocation strategies - `state.vaultAllocationStrategy.reserve` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.vaultAllocationStrategy.ctokenVault` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.vaultAllocationStrategy.targetAllocationWeight` (number, required) Target allocation weight as a whole number - `state.vaultAllocationStrategy.tokenAllocationCap` (string, required) Token allocation cap in lamports - `state.vaultAllocationStrategy.ctokenVaultBump` (number, required) cToken vault bump seed - `state.vaultAllocationStrategy.ctokenAllocation` (string, required) cToken allocation in lamports - `state.vaultAllocationStrategy.lastInvestSlot` (string, required) Last invest slot - `state.vaultAllocationStrategy.tokenTargetAllocation` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.minDepositAmount` (string, required) Minimum deposit amount in lamports - `state.minWithdrawAmount` (string, required) Minimum withdraw amount in lamports - `state.minInvestAmount` (string, required) Minimum invest amount in lamports - `state.minInvestDelaySlots` (number, required) Minimum invest delay in slots - `state.crankFundFeePerReserve` (string, required) Crank fund fee per reserve - `state.pendingAdmin` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.cumulativeEarnedInterest` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.cumulativeMgmtFees` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.cumulativePerfFees` (string, required) Total Value Locked in USD Example: "1234.56789" - `state.name` (string, required) Name of the vault - `state.vaultLookupTable` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.vaultFarm` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `state.creationTimestamp` (number, required) Timestamp of vault creation - `state.allocationAdmin` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `programId` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `vaultAddress` (string, required) Market public key Example: "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd" - `stakedShares` (string, required) Total Value Locked in USD Example: "1234.56789" - `unstakedShares` (string, required) Total Value Locked in USD Example: "1234.56789" - `totalShares` (string, required) Total Value Locked in USD Example: "1234.56789" ## Response 400 fields (application/json): - `error` (string, required) High-level error message describing the failure Example: "Invalid query request" - `details` (array) Detailed validation issues (present only for validation errors) Example: [{"code":"invalid_union","errors":[[{"code":"custom","path":[],"message":"Invalid date string"}],[{"expected":"number","code":"invalid_type","path":[],"message":"Invalid input: expected number, received string"}]],"path":["start"],"message":"Invalid input"}] ## Response 500 fields (application/json): - `error` (string, required) Error message for internal server failure Example: "An internal error occurred"