---
updatedAt: 2026-05-20T06:31:56.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Post Stake Intent

Creates an unsigned transaction that will attach a Blockdaemon's proxy account to the specified customer account. This will allow Blockdaemon to nominate on behalf of the customer and to continuously optimise the nominations of the customer account in order to achieve the best possible rewards.

The attaching will take place as soon as the user signs and broadcasts the transaction to the Polkadot network.

The customer account can be a stash account or a proxy (staking or non-transfer) for a stash account.

**Example (for the Westend network):** - Submitted:
    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6
- Returned:
    - proxy_address: 5FEPMjDLQd4Yyf8Dg7WSNVWSU36T1rXCcq1ph6HkW1YpNs5e
    - unsigned_transaction: 0xa4041601008c16e19e94328985d65cb7e3245213892730dd0e841f6511478cb12f23a178330100000000

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Staking API",
    "description": "The Blockdaemon Staking API simplifies and streamlines institutional cryptocurrency staking. The API allows developers to interact with blockchain networks and perform various staking-related operations, such as delegating and undelegating tokens, in a single, unified interface.\n\nWith the Staking API, you can quickly and easily build and deploy applications that automate staking activities and increase efficiency in your blockchain operations.",
    "contact": {
      "name": "Blockdaemon",
      "email": "info@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "https://assets-global.website-files.com/633c5e06513fa35f3391a5f9/645d33beb6fa65f6cfb95eb8_BD%20Logo%20Stack%20-%20Purple.svg",
      "backgroundColor": "#fafafa",
      "altText": "Blockdaemon logo"
    }
  },
  "x-readme": {
    "explorer-enabled": false
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/boss"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "description": "When signing up for a staking account, you are provided with an API key.\n\nTo authenticate a Staking API request, pass your API key in the `X-API-Key` header.",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "in": "header",
        "name": "Idempotency-Key",
        "description": "the unique idempotency key for this request",
        "example": "f1c971b4-7114-4c4b-8ad2-a6f9e33e2cd0",
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "required": false
      },
      "PolkadotNetwork": {
        "name": "network",
        "in": "path",
        "description": "Polkadot network",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/PolkadotNetwork"
        }
      }
    },
    "responses": {
      "InternalServerError": {
        "description": "Internal server error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "InvalidRequest": {
        "description": "Invalid request.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "Error response envelope",
              "required": [
                "code",
                "message"
              ],
              "properties": {
                "code": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Error code",
                  "example": 400
                },
                "message": {
                  "type": "string",
                  "description": "Error Message",
                  "example": "Detailed human-readable diagnostic message regarding any invalid request parameters"
                }
              }
            }
          }
        }
      },
      "NoValidatorsError": {
        "description": "Insufficient validators available to process Stake Intent request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Header 'X-API-Key' missing.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UnauthorizedError"
            }
          }
        }
      }
    },
    "schemas": {
      "CommonStakeIntentResponse": {
        "type": "object",
        "required": [
          "stake_intent_id",
          "customer_id"
        ],
        "properties": {
          "stake_intent_id": {
            "$ref": "#/components/schemas/StakeIntentId"
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "plan_id": {
            "$ref": "#/components/schemas/PlanId"
          }
        }
      },
      "CustomerId": {
        "type": "string",
        "description": "Unique identifier for a customer",
        "example": "SatoshiNakamoto-xUYJbPw9hw",
        "minimum": 1
      },
      "Error": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 500
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A descriptive error message"
          }
        }
      },
      "NewStakeIntentPolkadot": {
        "type": "object",
        "description": "Request object to create a new Stake Intent for Polkadot.",
        "properties": {
          "customer_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account whose DOT will be staked."
          },
          "controller_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account whose DOT will be staked.\nSame as customer_address. Deprecated - will be removed in a later version."
          }
        }
      },
      "PlanId": {
        "type": "string",
        "description": "This feature enables you to stake to validators from the specified plan(s). When no plan id is specified, validators across all plans that match the API route will be available for staking. If it is a shared plan, you can to stake to validators on a shared node from the specified plan.",
        "example": "plan_Wgx98Rbi8nQuL9ddn3mTk1"
      },
      "PolkadotAddress": {
        "type": "string",
        "description": "Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).",
        "format": "base58",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{44}$",
        "example": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj"
      },
      "PolkadotNetwork": {
        "type": "string",
        "description": "Coin network",
        "enum": [
          "mainnet",
          "kusama",
          "westend"
        ]
      },
      "StakeIntentId": {
        "type": "string",
        "format": "base58",
        "description": "Unique idenifier for a group of stakes.",
        "example": "stake_intent_Wgx98Rbi8nQuL9ddn3mTk1"
      },
      "StakeIntentPolkadot": {
        "type": "object",
        "description": "Polkadot Stake Intent Response",
        "required": [
          "stake_id",
          "unsigned_transaction",
          "proxy_address"
        ],
        "properties": {
          "unsigned_transaction": {
            "$ref": "#/components/schemas/UnsignedTransactionPolkadotStakeIntent",
            "description": "Unsigned transaction that bonds a Blockdaemon's proxy account to the given customer account.\nOnce this transaction is signed, broadcasted to the network and included in the canonical history of the chain, the proxy account will be associated with the customer account."
          },
          "customer_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account to associate with the proxy account."
          },
          "controller_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account to associate with the proxy account.\nSame as customer_address. Deprecated - will be removed in a later version."
          },
          "proxy_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the proxy account to associate with the customer account."
          }
        }
      },
      "UnauthorizedError": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 401
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A human-readable diagnostic message detailing any authorization failure"
          }
        }
      },
      "UnsignedTransactionPolkadotStakeIntent": {
        "type": "string",
        "format": "base64",
        "description": "Generated Polkadot unsigned transaction for the provided stake intent details.",
        "example": "0xa4041601008c16e19e94328985d65cb7e3245213892730dd0e841f6511478cb12f23a178330100000000"
      },
      "PolkadotProtocol": {
        "type": "string",
        "description": "Polkadot protocol",
        "enum": [
          "polkadot"
        ]
      },
      "PolkadotStakeIntentResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonStakeIntentResponse"
          },
          {
            "type": "object",
            "required": [
              "protocol",
              "network"
            ],
            "properties": {
              "protocol": {
                "$ref": "#/components/schemas/PolkadotProtocol"
              },
              "network": {
                "$ref": "#/components/schemas/PolkadotNetwork"
              },
              "polkadot": {
                "$ref": "#/components/schemas/StakeIntentPolkadot"
              }
            }
          }
        ]
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/polkadot/{network}/stake-intents": {
      "parameters": [
        {
          "$ref": "#/components/parameters/PolkadotNetwork"
        },
        {
          "$ref": "#/components/parameters/IdempotencyKey"
        }
      ],
      "post": {
        "summary": "Post Stake Intent",
        "operationId": "postPolkadotStakeIntent",
        "tags": [
          "Polkadot"
        ],
        "description": "Creates an unsigned transaction that will attach a Blockdaemon's proxy account to the specified customer account. This will allow Blockdaemon to nominate on behalf of the customer and to continuously optimise the nominations of the customer account in order to achieve the best possible rewards.\n\nThe attaching will take place as soon as the user signs and broadcasts the transaction to the Polkadot network.\n\nThe customer account can be a stash account or a proxy (staking or non-transfer) for a stash account.\n\n**Example (for the Westend network):** - Submitted:\n    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6\n- Returned:\n    - proxy_address: 5FEPMjDLQd4Yyf8Dg7WSNVWSU36T1rXCcq1ph6HkW1YpNs5e\n    - unsigned_transaction: 0xa4041601008c16e19e94328985d65cb7e3245213892730dd0e841f6511478cb12f23a178330100000000",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewStakeIntentPolkadot"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolkadotStakeIntentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/NoValidatorsError"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Polkadot",
      "description": "Polkadot endpoints"
    }
  ]
}
```