Cubist Signing API
The Signing API from Cubist — 21 operation(s) for signing.
The Signing API from Cubist — 21 operation(s) for signing.
openapi: 3.0.3
info:
title: CubeSigner Account Signing API
description: The CubeSigner management and signing service.
contact:
name: Cubist Inc.
email: hello@cubist.dev
version: v0.1.0
servers:
- url: https://gamma.signer.cubist.dev
description: Testing and staging environment
- url: https://prod.signer.cubist.dev
description: Production environment
security:
- Cognito: []
tags:
- name: Signing
paths:
/v0/org/{org_id}/ava/sign/{ava_chain}/{pubkey}:
post:
tags:
- Signing
summary: Sign a serialized Avalanche C/X/P-Chain Message
description: 'Sign a serialized Avalanche C/X/P-Chain Message
Signs an Avalanche message with a given SecpEth (C-Chain messages) or
SecpAva (X- and P-Chain messages) key. Currently signing C-Chain messages
with SecpEth key must also be explicitly allowed via `AllowRawBlobSigning`
policy.
This is a pre-release feature.'
operationId: avaSerializedTxSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: ava_chain
in: path
description: Avalanche chain
required: true
schema:
type: string
example: P
- name: pubkey
in: path
description: Avalanche address in bech32 or ETH format
required: true
schema:
type: string
example: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AvaSerializedTxSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:ava
/v0/org/{org_id}/ava/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign JSON-encoded Avalanche X- or P-Chain Message
description: 'Sign JSON-encoded Avalanche X- or P-Chain Message
Signs an Avalanche message with a given SecpAva key.
This is a pre-release feature.'
operationId: avaSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Avalanche bech32 address format without the chain prefix
required: true
schema:
type: string
example: avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AvaSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:ava
/v0/org/{org_id}/babylon/cov/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign Babylon Covenant Committee Request
description: 'Sign Babylon Covenant Committee Request
Signs transactions relevant to a Babylon covenant committee signer,
i.e., Schnorr and adaptor signatures for the unbonding, slashing, and
slash-unbonding outputs of a Babylon staking transaction.'
operationId: babylonCovSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: hex-encoded public key
required: true
schema:
type: string
example: '0x03e38106dd76656bc68d02898ede1a911df8c793e46ac4eb37d26c266aae5d2a5a'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BabylonCovSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/BabylonCovSignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:babylon:covenant
/v0/org/{org_id}/babylon/registration/{pubkey}:
post:
tags:
- Signing
summary: Sign Babylon Staking Registration
description: 'Sign Babylon Staking Registration
Creates and signs the data needed to register a Phase-2 or Phase-3
Babylon stake. This includes the deposit and unbonding transactions,
two slashing transactions, the slashing signatures, and the proof of
possession.
Note that it is also possible to generate this registration data by
making four calls to the Babylon staking API, plus one call to the
PSBT signing API to generate the BIP-322 proof of possession. The
registration API generates the same data but is easier to use.
Note that this action can only be called with a Taproot key. If your
deposit transaction spends UTXOs that are controlled by other keys,
you can submit the ''deposit'' PSBT to the PSBT signing API one or more
times to generate the required signatures.
For more information, consult the
[Babylon documentation](https://github.com/babylonlabs-io/babylon/blob/release/v1.x/docs/register-bitcoin-stake.md).
This is a pre-release feature.'
operationId: babylonRegistration
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: bech32 encoding of the public key
required: true
schema:
type: string
example: tb1pe4fgyn87pwku2xdptc2dtaeqzyx8wx89cqa6yntu8td49flpt5wq5k6hau
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BabylonRegistrationRequest'
required: true
responses:
'200':
$ref: '#/components/responses/BabylonRegistrationResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:babylon:registration
/v0/org/{org_id}/babylon/staking/{pubkey}:
post:
tags:
- Signing
summary: Sign Babylon Staking Transaction
description: 'Sign Babylon Staking Transaction
Creates and signs transactions related to Babylon staking (i.e.,
deposit, early unbond, withdrawal). The return value is a Pre-Signed
Bitcoin Transaction (PSBT), as defined in BIP-174, which matches the
format used in most Babylon tooling.
The ''deposit'' action can be used with either Segwit (i.e., SecpBtc/SecpBtcTest)
or Taproot (i.e., TaprootBtc/TaprootBtcTest) keys. The remaining actions can be
used only with Taproot keys.
This is a pre-release feature.'
operationId: babylonStaking
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: bech32 encoding of the public key
required: true
schema:
type: string
example: tb1pe4fgyn87pwku2xdptc2dtaeqzyx8wx89cqa6yntu8td49flpt5wq5k6hau
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BabylonStakingRequest'
required: true
responses:
'200':
$ref: '#/components/responses/BabylonStakingResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:babylon:staking
/v0/org/{org_id}/btc/message/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign a Bitcoin message.
description: 'Sign a Bitcoin message.
Signs a message using BIP137 message signing with a given Secp256k1 key.'
operationId: btcMessageSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Address of a Segwit or Legacy bitcoin key
required: true
schema:
type: string
example: bc1q3r35u4th78h06d64mwmp3vpu8qmzya05pq8fwl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BtcMessageSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/BtcMessageSignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:btc:message:legacy
- sign:btc:message:segwit
/v0/org/{org_id}/btc/psbt/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign a Partially Signed Bitcoin Transaction (PSBT)
description: 'Sign a Partially Signed Bitcoin Transaction (PSBT)
Signs all inputs of the supplied PSBT v0 (BIP-174) that pertain to the
''pubkey'' specified in the request, which can be either a Taproot or a
Segwit key. For Segwit keys, CubeSigner-specific deterministic tweaking
can be applied to ''pubkey'' before signing, on a per-input basis. (See the
CubeSigner documentation for more information on Segwit tweaking.)
When calling with a segwit key the required scope is ''sign:btc:psbt:segwit''.
For a taproot key, the scope is ''sign:btc:psbt:taproot''. Either type of key
can be used with the ''sign:btc:psbt'' scope.
This is a pre-release feature.'
operationId: psbtSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: bech32(m)-encoded segwit or taproot address
required: true
schema:
type: string
example: bc1p2wsldez5mud2yam29q22wgfh9439spgduvct83k3pm50fcxa5dps59h4z5
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PsbtSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/PsbtSignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:btc:psbt:legacy
- sign:btc:psbt:segwit
- sign:btc:psbt:taproot
/v0/org/{org_id}/btc/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign Bitcoin Segwit Transaction
description: 'Sign Bitcoin Segwit Transaction
Signs a Bitcoin Segwit transaction with a given key.
This is a pre-release feature.'
operationId: btcSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: bech32-encoded segwit address
required: true
schema:
type: string
example: bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BtcSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:btc:segwit
/v0/org/{org_id}/btc/taproot/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign Bitcoin Taproot Transaction
description: 'Sign Bitcoin Taproot Transaction
Signs a Bitcoin Taproot transaction with a given key.
This is a pre-release feature.'
operationId: btcTaprootSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: bech32m-encoded taproot address
required: true
schema:
type: string
example: bc1p2wsldez5mud2yam29q22wgfh9439spgduvct83k3pm50fcxa5dps59h4z5
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TaprootSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:btc:taproot
/v0/org/{org_id}/diffie_hellman/{key_id}:
post:
tags:
- Signing
summary: Compute Diffie Hellman shared secret
description: 'Compute Diffie Hellman shared secret
For a set of elliptic curve points (P_1, ..., P_i), computes the Diffie Hellman
shared secret (Q_1, ..., Qi) = (sk * P_1, ... sk * P_i), for sk the secret key.
Points are specified in a curve-dependent format. See CubeSigner documentation
for more details.
The user can optionally specify a NIST P-256 public key, in which case the result
will be encrypted to the public key using RFC9180 HPKE(P-256, HKDF-SHA256) with
AES-256-GCM as the symmetric cipher. In this case, the resulting ciphertext will
contain a serialized JSON blob containing the vector of shared secrets in the same
order they were specified in the request.
If the user does not specify a public key, the resulting shared secrets will be
returned unencrypted. In this case, the caller should sample a random value r
modulo the group order and mask the requested points as (r * P_1, ..., r * P_i).
The result will be (r * sk * P_1, ..., r * sk * P_i), which can be unmasked by
first computing r^-1, the multiplicative inverse of r modulo the group order,
then computing a scalar multiplication of each returned point with r^-1.
There is little practical security difference between these two approaches. The
client is free to choose the one that is easier from an implementation perspective.'
operationId: diffieHellmanExchange
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: key_id
in: path
description: ID of the desired Key
required: true
schema:
type: string
example: Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DiffieHellmanRequest'
required: true
responses:
'200':
$ref: '#/components/responses/DiffieHellmanResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:diffieHellman
/v0/org/{org_id}/evm/eip191/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign EIP-191 Data
description: 'Sign EIP-191 Data
Signs a message using EIP-191 personal_sign with a given Secp256k1 key.'
operationId: eip191Sign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded EVM address of the Secp256k1 key
required: true
schema:
type: string
example: '0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Eip191SignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:evm:eip191
/v0/org/{org_id}/evm/eip712/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign EIP-712 Typed Data
description: 'Sign EIP-712 Typed Data
Signs typed data according to EIP-712 with a given Secp256k1 key.'
operationId: eip712Sign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded EVM address of the Secp256k1 key
required: true
schema:
type: string
example: '0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Eip712SignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:evm:eip712
/v0/org/{org_id}/evm/eip7702/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign an EIP-7702 Authorization
description: 'Sign an EIP-7702 Authorization
Signs an EIP-7702 authorization tuple `(chain_id, address, nonce)` with a given
Secp256k1 key. The resulting 65-byte signature (`r || s || y_parity`) can be used to
assemble a `SignedAuthorization` for an EIP-7702 set-code transaction.'
operationId: eip7702Sign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded EVM address of the Secp256k1 key
required: true
schema:
type: string
example: '0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Eip7702SignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:evm:eip7702
/v0/org/{org_id}/solana/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign Solana Message
description: 'Sign Solana Message
Signs a Solana message with a given key.
This is a pre-release feature.'
operationId: solanaSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: The base58-encoded public key
required: true
schema:
type: string
example: 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SolanaSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:solana
/v0/org/{org_id}/sui/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign a serialized SUI transaction.
description: 'Sign a serialized SUI transaction.
This is a pre-release feature.'
operationId: suiSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded SUI key address
required: true
schema:
type: string
example: '0xdd68d35a778db1e3123c950e5db5361333f57733a77486a704dd8c994d96761d'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SuiSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:sui
/v0/org/{org_id}/tendermint/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign a tendermint message.
description: 'Sign a tendermint message.
Signs the given base-64 encoded vote or proposal with the given tendermint key.'
operationId: tendermintSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded validator public key with 0x prefix
required: true
schema:
type: string
example: '0x7d8d344e6e53151692fa78a098630799946ad4d6a027ae6bcd7a78dc78281650'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TendermintSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:tendermint
/v1/org/{org_id}/blob/sign/{key_id}:
post:
tags:
- Signing
summary: Sign Raw Blob
description: 'Sign Raw Blob
Signs an arbitrary blob with a given key.
- ECDSA signatures are serialized as big-endian r and s plus recovery-id
byte v, which can in general take any of the values 0, 1, 2, or 3.
- EdDSA signatures are serialized in the standard format.
- BLS signatures are not supported on the blob-sign endpoint.'
operationId: blobSign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: key_id
in: path
description: ID of the desired Key
required: true
schema:
type: string
example: Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BlobSignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:blob
/v1/org/{org_id}/eth1/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign EVM Transaction
description: 'Sign EVM Transaction
Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
Returns an RLP-encoded transaction with EIP-155 signature.
The key must be associated with the role and organization on whose behalf this action is called.'
operationId: eth1Sign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded ethereum address of the secp key
required: true
schema:
type: string
example: '0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Eth1SignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/Eth1SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:evm:tx
/v1/org/{org_id}/eth2/sign/{pubkey}:
post:
tags:
- Signing
summary: Sign Validator Request
description: 'Sign Validator Request
Signs an eth2 validator request with a given BLS key.
The key must be associated with the role and organization on whose behalf this action is called.'
operationId: eth2Sign
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: pubkey
in: path
description: Hex-encoded validator (BLS) public key with 0x prefix
required: true
schema:
type: string
example: '0x9700fbb8c906942442c2a5b3ad7498f27aedda253786a6fbaa8fef47fb7af234e50cf2cce815a553087992ae565d48da'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Eth2SignRequest'
required: true
responses:
'200':
$ref: '#/components/responses/SignResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- sign:eth2:validate
/v1/org/{org_id}/eth2/stake:
post:
tags:
- Signing
summary: Sign Stake Deposit
description: 'Sign Stake Deposit
Signs a deposit transaction with a `validator_key`. If `validator_key` is set to a pregenerated key, we use the
provided validator key. Otherwise, we generate a new BLS key.
When using a pregenerated key, the key must be associated with the role and organization on whose
behalf this action is called.'
operationId: stake
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
# --- truncated at 32 KB (158 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cubist/refs/heads/main/openapi/cubist-signing-api-openapi.yml