Basic Description

This endpoint is used to create a Staking Request in Taurus-PROTECT in the Cardano Platform.
To understand what Staking is, please refer to the following page in the Taurus User Guides.

This endpoint would accept a POST Request with a JSON payload containing the Staking Request details.

The fromAddressId and toStakePoolAddressId are the only required parameters that must be included within the JSON payload.

🚧

Staking Amount for ADA

It is important to note that in the Cardano Platform, you are not allowed to select the amount you want to stake. In other words, all the funds within the originating address will be used for the Staking Request.

Prerequisites

Required Roles

Certain API endpoints require that the user has a specific role in order to access them. Roles are used to restrict access to certain functionality within the system and ensure that only authorized users are able to perform specific actions.

Here is the list of required Roles for this particular endpoint:

  • RequestCreator
  • TPUser

To find out more about roles, please refer to the following page in the Taurus User Guides.

Required Input Parameters

Certain API endpoints require specific input parameters. Here is the list of Required Input Parameters for this particular endpoint:

  • fromAddressId : the originating Address
  • toStakePoolAddressId: the destination Address for Staking

📘

Preconditions

It is important to note that the selected Addresses needs to pre-exist and be active in the system. In addition, the originating Address cannot have a zero balance for the Staking Request to succeed.

Call Example

You can find a basic example in cURL below.
Please note that you will need to update the BASEURL and the APITOKEN for the command to function.
In this example, Taurus-PROTECT has created a new Staking Request from Address 210368 to Address 1307 and has assigned it a unique ID of 4234793.

export BASEURL=https://taurus-protect-instance.com
export APIToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiZXh0ZXJuYWxVc2VySUQiOiJ0ZWFtMUV4dGVybmFsVXNlcklEIiwidGVuYW50SUQiOjEsImNhcGl0YWxUZW5hbnRJRCI6MSwiZmlyc3RuYW1lIjoiSm9obiIsImxhc3RuYW1lIjoiRG9lIiwicm9sZXMiOlsidHB1c2VyIl0sImVtYWlsIjoidGVhbTFAYmFuay5jb20iLCJ1c2VybmFtZSI6InRlYW0xIiwiand0X3JlbmV3YWJsZV9hbW91bnQiOjAsImlzX3RvdHBfZW5hYmxlZCI6ZmFsc2UsImF1dGhfc3RhdHVzIjoiU1VDQ0VTUyIsImxhc3RfbG9naW4iOiIyMDIzLTAxLTAxVDAwOjAwOjAwLjE0OTc0NDIzMloiLCJsb2dnZWRfaW5fd2l0aF9zc28iOmZhbHNlLCJrZXkiOiIiLCJleHAiOjE2ODEyMTkyNzYsImlhdCI6MTY4MTIxNzQ3Nn0.K_85arIrigpkN1yHttCydpeT6oVg2c6PyQnuji907Og
curl --location "$BASEURL/api/rest/v1/requests/outgoing/ada/delegate" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $APIToken" \
--data '{
	"fromAddressId":"210368",
	"toStakePoolAddressId":"1307"
}'

This piece of code sends a POST request to https://your-protect-instance.example.com/api/rest/v1/requests/outgoing/ada/delegate with the JSON string in the request body.

👍

Call Result

A successful response for the POST call to create a Staking Request for ADA might look like this:

{
    "result": {
        "approvers": {
            "parallel": [
                {
                    "sequential": [
                        {
                            "externalGroupID": "team1",
                            "minimumSignatures": 1
                        }
                    ]
                },
                {
                    "sequential": [
                        {
                            "externalGroupID": "team2",
                            "minimumSignatures": 1
                        }
                    ]
                }
            ]
        },
        "currency": "ADA",
        "currencyInfo": {
            "blockchain": "ADA",
            "coinTypeIndex": "1815",
            "decimals": "6",
            "displayName": "Cardano - ADA",
            "enabled": true,
            "hasStaking": true,
            "id": "091a408c6461430987fb64fc064f79a414359065e3a93f6d0ab0159f5c525137",
            "isUTXOBased": true,
            "name": "Cardano",
            "network": "mainnet",
            "symbol": "ADA",
            "type": "native"
        },
        "envelope": "Cgc0MjM0NzkzEO3ltuTD/8KtFxgNKosGCBsSzAEKLDQyMzQ3OTM6YWZiYzNmMzItOWUxMy00NWQxLWEwYzEtYTIzOTY3ZjNhMjdhEjgKFG0vNDQnLzE4MTUnLzMnLzAnLzAnEiAkRRGgSDtiF/Hg8o6kLP1JMDwSkpEoRnXwPQpsI4GYexodChRtLzQ0Jy8xODE1Jy8zJy8wJy8wJxIFCInZpwEiOHBvb2wxdXlsMDVyemw1MmtmNHJ5eHF3bjB3anRsMGR6Zjk5bXM0MnRuMHNycG5xZDc3bTNjdXY0KAEw7NPuKzi5lQsiFwoKcmVxdWVzdF9pZBABGgc0MjM0NzkzIhsKCXJ1bGVzX2tleRABGgxBREFfRGVsZWdhdGUiEQoIY3VycmVuY3kQARoDQURBIiAKDWN1cnJlbmN5X25hbWUQARoNQ2FyZGFubyAtIEFEQSJRCgtjdXJyZW5jeV9pZBABGkAwOTFhNDA4YzY0NjE0MzA5ODdmYjY0ZmMwNjRmNzlhNDE0MzU5MDY1ZTNhOTNmNmQwYWIwMTU5ZjVjNTI1MTM3IqoBCgZzb3VyY2UQBBqVAQgBEpABCMDrDBJnYWRkcjFxOGpkc2s5OWZudWttcm1lbXZ0bG02YTdwMmpjcmFxOXpkeGVyZDkwZTI4cnIwM3kyZnh3enllNzl6Z3o4M3kwcDlqZDJ1YWgyejhkdDB0bXRrajdrZW1udXVtcXY0cHo4aBoLTm9zdHJvIE1haW4iFG0vNDQnLzE4MTUnLzMnLzAnLzAnIgZzb3VyY2UiZgoIZGVsZWdhdGUQBRpOCAESSgibChI4cG9vbDF1eWwwNXJ6bDUya2Y0cnl4cXduMHdqdGwwZHpmOTltczQydG4wc3JwbnFkNzdtM2N1djQaC0FEQSAtIDExLjAxIghkZWxlZ2F0ZSIRCgN0dGwQAhoIAAAAAAV7qewiEgoJZmVlX2xpbWl0EAIaAwhgKyIgChV1c2VfdW5jb25maXJtZWRfZnVuZHMQARoFZmFsc2UiHAoRaXNfY2FuY2VsX3JlcXVlc3QQARoFZmFsc2U6B21haW5uZXQ=",
        "id": "4234793",
        "rule": "rule = [source: any, delegate: any], approvals = ['team1': 1 sig|'team2': 1 sig]",
        "status": "CREATED",
        "tenantId": "1",
        "trails": [
            {
                "action": "created",
                "externalUserId": "[email protected]",
                "requestStatus": "CREATED",
                "userId": "11"
            },
            {
                "action": "approvers_assigned",
                "comment": "rule = [source: any, delegate: any], approvals = ['team1': 1 sig|'team2': 1 sig]",
                "externalUserId": "[email protected]",
                "requestStatus": "CREATED",
                "userId": "1"
            }
        ],
        "type": "ada_delegate"
    }
}

Taurus-PROTECT responds with a JSON object containing the Staking Request details, including the Request status and the newly assigned Requestid.

Requirements for Future Use

For this particular endpoint, we need to store the Requestid as it will be required in the next step where we will sign the Staking Request.

You can find the Swagger-generated page for this endpoint in the following link.




  © 2025 Taurus SA. All rights reserved.