Skip to main content

Staking Actions

v1ClaimRewards

Handler URL: {{BASE_RESTFUL_URL}}/position/claim-rewards

Action Type: mutation

Input Parameters

position (PositionInput!)

{
"position": {
"contractName": "string",
"data": {
"stakeIndex": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1CreatePlan

Handler URL: {{BASE_RESTFUL_URL}}/plan/create-plan

Action Type: mutation

Input Parameters

plan (CreatePlanInput!)

{
"plan": {
"contractName": "string",
"data": {
"apr": "string",
"lockDuration": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1GetExpectedRewards

Handler URL: {{BASE_RESTFUL_URL}}/position/get-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsFilterInput!)

{
"position": {
"contractName": "string",
"data": {
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1GetExpectedRewardsByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1GetHistoricalValueLocked

Handler URL: {{BASE_RESTFUL_URL}}/position/get-historical-value-locked

Action Type: query

Permissions: guest, user-admin

Input Parameters

position (HistoricalInput!)

{
"position": {
"contractName": "string",
"data": {
"filterBy": [
"string"
],
"networks": [
"string"
]
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1GetRewardsReceivedByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-rewards-received-by-user

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1GetTotalValueLocked

Handler URL: {{BASE_RESTFUL_URL}}/position/get-total-value-locked

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (GetTotalValueLockedInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"networks": [
"string"
]
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1Restake

Handler URL: {{BASE_RESTFUL_URL}}/position/restake

Action Type: mutation

Input Parameters

position (ReopenPositionInput!)

{
"position": {
"contractName": "string",
"data": {
"planId": "string",
"stakeIndex": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1Stake

Handler URL: {{BASE_RESTFUL_URL}}/position/stake

Action Type: mutation

Input Parameters

position (OpenPositionInput!)

{
"position": {
"contractName": "string",
"data": {
"amount": "string",
"planId": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v1Unstake

Handler URL: {{BASE_RESTFUL_URL}}/position/unstake

Action Type: mutation

Input Parameters

position (PositionInput!)

{
"position": {
"contractName": "string",
"data": {
"stakeIndex": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2CreatePlan

Handler URL: {{BASE_RESTFUL_URL}}/plan/create-plan

Action Type: mutation

Input Parameters

plan (CreatePlanV2Input!)

{
"plan": {
"contractName": "string",
"data": {
"apr": 0,
"aprAfterUnlock": 0,
"initialRatio": 0,
"lockDuration": 0,
"maxStakedAmount": "string",
"minStakeAmount": "string",
"rewardToken": "string",
"rewardsEndTime": "string",
"stakingEndTime": "string",
"stakingToken": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetDetailedExpectedRewards

Handler URL: {{BASE_RESTFUL_URL}}/position/get-detailed-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsFilterInput!)

{
"position": {
"contractName": "string",
"data": {
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetDetailedExpectedRewardsByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-detailed-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetDetailedRewardsReceivedByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-detailed-rewards-received-by-user

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetExpectedRewards

Handler URL: {{BASE_RESTFUL_URL}}/position/get-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsFilterInput!)

{
"position": {
"contractName": "string",
"data": {
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetExpectedRewardsByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-expected-rewards

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetPlansDynamicApr

Handler URL: {{BASE_RESTFUL_URL}}/plan/get-plans-with-dynamic-apr

Action Type: query

Permissions: user-admin, guest

Input Parameters

plan (GetDynamicAprInput)

{
"plan": {
"contractName": "string",
"networks": [
"string"
]
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetRewardsReceivedByUser

Handler URL: {{BASE_RESTFUL_URL}}/position/get-rewards-received-by-user

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (RewardsByUserInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"filterBy": [
"string"
],
"networks": [
"string"
],
"withAccruedRewards": false
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetStakingStats

Handler URL: {{BASE_RESTFUL_URL}}/position/get-staking-summary

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (GetTotalValueLockedInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"networks": [
"string"
]
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2GetTotalValueLocked

Handler URL: {{BASE_RESTFUL_URL}}/position/get-total-value-locked

Action Type: query

Permissions: user-admin, guest

Input Parameters

position (GetTotalValueLockedInput!)

{
"position": {
"contractName": "string",
"data": {
"address": "string",
"networks": [
"string"
]
}
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

v2UpdatePlan

Handler URL: {{BASE_RESTFUL_URL}}/plan/update-plan

Action Type: mutation

Input Parameters

plan (UpdatePlanV2Input!)

{
"plan": {
"contractName": "string",
"data": {
"apr": 0,
"aprAfterUnlock": 0,
"lockDuration": 0,
"maxStakedAmount": "string",
"minStakeAmount": "string",
"planId": 0,
"rewardsEndTime": "string",
"stakingEndTime": "string"
},
"network": "string",
"tx": "string"
}
}

Response

Type: DataOutput

{
"res": "value",
"success": false
}

Types of Error

General

Error messageReason
Could not verify JWT: JWT errorThe JWT is invalid
Invalid request payload inputThe input provided has a invalid value
Cannot convert X to BigIntThe string provided is not a integer number

Session

Error messageReason
The account does not have sufficient permissionsThe user is not authorized to perform the action
Invalid message or signatureThe message provided is invalid
Invalid or expired sessionThe user session is invalid

Addresses

Error messageReason
Neither Index nor Id can be negativeThe index or id are negative
Address does not follow the ethereum address formatThe address provided is invalid
Sender address is not adminThe address does not have the required admin role in the staking contract
Collateral token does not follow the ethereum address formatThe collateral token address is invalid

Plan

Error messageReason
Invalid plan id XThere is no plan with the provided id
Plan id is not unique"0x" does not uniquely identify a Plan
Lock duration cannot be negativeThe lock duration is not a positive number
APY cannot be negativeThe APY is not a positive number
Neither staking nor reward end date can be negativeOccurs when trying to set negative dates
Staking end time cannot be less than rewards end timeOccurs when trying to set dates with a staking end time less than rewards end time

Staking

Error messageReason
Stake amount too lowMust stake more than the minimum
Invalid stake indexThe position does not exists
Staking has endedThe staking end time has passed and new positions cannot be created
Stake already unstakedAn already unstaked position cannot be unstaked again
Stake is lockedThe lock duration has not passed

Pagination

Error MessageReason
Offset cannot be negativeThe provided offset is negative
Limit cannot be negative or 0The provided limit is negative or zero
Max limit allowed is XThe provided limit is equal to the maximum results per page, use a smaller value

Follow us:

Copyright © 2025 Defactor. All Rights Reserved