Narval | Docs
GithubHome
  • Narval Connect
    • Overview
    • Getting Started
  • Security Overview
  • Providers
    • Providers
      • Anchorage
      • BitGo
      • Fireblocks
  • Guide
    • ConnectClient
    • Connect Widget
      • initiateConnect
      • completeConnect
    • Using a Connection
      • listWallets
      • getWalletById
      • listAccounts
      • getAccountById
      • listAddresses
      • getAddressById
      • listKnownDestinations
      • sendTransfer
      • getTransfer
      • EVM Transactions
        • sendTransaction
        • getTransactionById
        • signMessage
        • getSignMessageById
        • signTypedData
        • getTypedDataById
      • Staking
        • Ethereum (ETH)
        • Polygon (POL)
        • Solana (SOL)
        • Sui (SUI)
      • Raw Signing
        • signRaw
        • getRawSignRequest
    • Manage Connections
      • listConnections
      • getConnection
      • revokeConnection
  • API Reference
    • REST API
      • Authorization
      • Connect Widget
      • Networks & Assets
      • Wallets, Accounts, Addresses
      • Known Destinations
      • Transfer
      • Stake
        • Ethereum
        • Polygon
        • Solana
        • Sui
      • Transactions
        • Ethereum (EVM)
      • Raw Signing
      • Transit Encryption Key
      • Manage Connections
Powered by GitBook
On this page
  1. API Reference
  2. REST API
  3. Stake

Ethereum

PreviousStakeNextPolygon

Last updated 29 days ago

See Providers for which providers support this network

List unstakeable positions

get

Returns a list of positions that can be unstaked.

Authorizations
Query parameters
accountIdstringOptional

The account ID to list unstakeable positions for

Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Responses
200
The unstakeable positions were successfully retrieved.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
get
GET /v1/provider/ethereum/unstakeable-positions HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Accept: */*
{
  "data": [
    {
      "positionId": "text",
      "status": "closed",
      "provider": "text",
      "externalStatus": "text",
      "networkId": "text",
      "accountId": "text",
      "clientId": "text",
      "connectionId": "text"
    }
  ]
}

Get unstake by ID

get

Returns a specific unstake request by ID.

Authorizations
Path parameters
unstakeIdstringRequired

The unstake ID to retrieve

Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Responses
200
The unstake request was successfully retrieved.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
get
GET /v1/provider/ethereum/unstakes/{unstakeId} HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Accept: */*
{
  "data": {
    "unstakeRequest": {
      "unstakeId": "text",
      "provider": "anchorage",
      "createdAt": null,
      "networkId": "text",
      "externalId": "text",
      "accountId": "text",
      "clientId": "text",
      "connectionId": "text",
      "status": "pending_approval",
      "externalStatus": "text"
    },
    "transactions": [
      {
        "externalTxId": "text",
        "externalTransactionStatus": "text"
      }
    ]
  }
}
  • GETGet stake by ID
  • POSTCreate stake
  • GETList unstakeable positions
  • GETGet unstake by ID
  • POSTCreate unstake

Get stake by ID

get

Returns a specific stake request by ID.

Authorizations
Path parameters
stakeIdstringRequired
Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Responses
200
The stake request was successfully retrieved.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
get
GET /v1/provider/ethereum/stakes/{stakeId} HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Accept: */*
{
  "data": {
    "stakeRequest": {
      "stakeRequestId": "text",
      "provider": "anchorage",
      "createdAt": null,
      "networkId": "text",
      "externalId": "text",
      "accountId": "text",
      "clientId": "text",
      "connectionId": "text",
      "providerSpecific": null,
      "status": "pending_approval",
      "externalStatus": "text"
    },
    "positions": [
      {
        "positionId": "text",
        "status": "closed",
        "provider": "text",
        "externalStatus": "text",
        "networkId": "text",
        "accountId": "text",
        "clientId": "text",
        "connectionId": "text"
      }
    ],
    "transactions": [
      {
        "externalTxId": "text",
        "externalTransactionStatus": "text"
      }
    ]
  }
}

Create stake

post

Creates a new stake request on the provider.

Authorizations
Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Body

Request to stake tokens on an account. Will result in one or multiple stake positions.

sourceone ofRequired
or
createdAtanyOptional
amountstringRequired
idempotenceIdstringRequired
stakeRequestIdstringOptional

Sets the stake ID to an arbitrary value.

memostringOptional
providerSpecificanyOptional
Responses
201
The stake request was successfully created.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
post
POST /v1/provider/ethereum/stakes HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Content-Type: application/json
Accept: */*
Content-Length: 210

{
  "source": {
    "type": "account",
    "id": "text"
  },
  "createdAt": null,
  "validator": {
    "address": "text",
    "externalId": "text"
  },
  "amount": "text",
  "idempotenceId": "text",
  "stakeRequestId": "text",
  "memo": "text",
  "providerSpecific": null
}
{
  "data": {
    "stakeRequest": {
      "stakeRequestId": "text",
      "provider": "anchorage",
      "createdAt": null,
      "networkId": "text",
      "externalId": "text",
      "accountId": "text",
      "clientId": "text",
      "connectionId": "text",
      "providerSpecific": null,
      "status": "pending_approval",
      "externalStatus": "text"
    },
    "positions": [
      {
        "positionId": "text",
        "status": "closed",
        "provider": "text",
        "externalStatus": "text",
        "networkId": "text",
        "accountId": "text",
        "clientId": "text",
        "connectionId": "text"
      }
    ],
    "transactions": [
      {
        "externalTxId": "text",
        "externalTransactionStatus": "text"
      }
    ]
  }
}

Create unstake

post

Creates a new unstake request on the provider.

Authorizations
Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Body

Request to unstake from a specific stake position.

amountstringRequired
idempotenceIdstringRequired
networkIdstringRequired
sourceone ofRequired
or
stakePositionIdstringRequired
unstakeIdstringOptional

Sets the unstake ID to an arbitrary value.

Responses
201
The unstake request was successfully created.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
post
POST /v1/provider/ethereum/unstakes HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "amount": "text",
  "idempotenceId": "text",
  "networkId": "text",
  "source": {
    "type": "account",
    "id": "text"
  },
  "stakePositionId": "text",
  "unstakeId": "text"
}
{
  "data": {
    "unstakeRequest": {
      "unstakeId": "text",
      "provider": "anchorage",
      "createdAt": null,
      "networkId": "text",
      "externalId": "text",
      "accountId": "text",
      "clientId": "text",
      "connectionId": "text",
      "status": "pending_approval",
      "externalStatus": "text"
    },
    "transactions": [
      {
        "externalTxId": "text",
        "externalTransactionStatus": "text"
      }
    ]
  }
}