Cubist Contact API
The Contact API from Cubist — 3 operation(s) for contact.
The Contact API from Cubist — 3 operation(s) for contact.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cubist-contact-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CubeSigner Account Contact 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: Contact
paths:
/v0/org/{org_id}/contacts:
get:
tags:
- Contact
summary: List Contacts
description: 'List Contacts
List all contacts in the org.
Any org member is allowed to list all contacts in the org.
## Search Condition
The search condition is optional.
- If the search condition starts with "label:...", this list will only hold contacts with
the label provided after the ":". For example, "label:cubist:erc20_token" would return contacts that
hold the label "cubist:erc20_token".
- Otherwise, the result will contain only the contacts who have an address starting with, or
equaling, the given search string. For example, "0xee" would return all contacts holding an
address starting with "0xee". The search is case-insensitive.
If a search term is defined, we do not guarantee
the number of results in a page. The behavior of this parameter may change
in the future (for example, making results more strictly paginated or
performing a fuzzy search rather than a prefix search).'
operationId: listContacts
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: page.size
in: query
description: 'Max number of items to return per page.
If the actual number of returned items may be less that this, even if there exist more
data in the result set. To reliably determine if more data is left in the result set,
inspect the [UnencryptedLastEvalKey] value in the response object.'
required: false
schema:
type: integer
format: int32
default: 100
maximum: 1001
minimum: 1
style: form
- name: page.start
in: query
description: 'The start of the page. Omit to start from the beginning; otherwise, only specify a
the exact value previously returned as ''last_evaluated_key'' from the same endpoint.'
required: false
schema:
type:
- string
- 'null'
style: form
- name: search
in: query
description: Either 'label:...', which lists contacts with the label provided after the ':'. Or, an entire address, or prefix of an address, that returned contacts must have. When searching by address, it must be at least 3 characters.
required: false
schema:
type:
- string
- 'null'
responses:
'200':
$ref: '#/components/responses/PaginatedListContactsResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:list
post:
tags:
- Contact
summary: Create Contact
description: 'Create Contact
Creates a new contact in the organization-wide address book. The
user making the request is the owner of the contact, giving them edit access
to the contact along with the org owners.'
operationId: createContact
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:
$ref: '#/components/schemas/CreateContactRequest'
required: true
responses:
'200':
$ref: '#/components/responses/ContactInfoResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:create
/v0/org/{org_id}/contacts/by-address:
post:
tags:
- Contact
summary: Lookup Contacts by Address
description: 'Lookup Contacts by Address
Returns all contacts in the org that have the given address.
When querying with an EVM address without a chain, this endpoint returns
contacts with that address on *any* chain, including those without a chain
defined.'
operationId: lookupContactsByAddress
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:
$ref: '#/components/schemas/ContactAddressData'
required: true
responses:
'200':
$ref: '#/components/responses/PaginatedListContactsResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:lookup:address
/v0/org/{org_id}/contacts/{contact_id}:
get:
tags:
- Contact
summary: Get Contact
description: 'Get Contact
Returns the properties of a Contact.'
operationId: getContact
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: contact_id
in: path
description: ID of the desired Contact
required: true
schema:
type: string
example: Contact#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
responses:
'200':
$ref: '#/components/responses/ContactInfoResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:get
delete:
tags:
- Contact
summary: Delete Contact
description: 'Delete Contact
Delete a contact, specified by its ID.
Only the contact owner and org owners are allowed to delete contacts.
Additionally, the contact''s edit policy (if set) must permit the deletion.'
operationId: deleteContact
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: contact_id
in: path
description: ID of the desired Contact
required: true
schema:
type: string
example: Contact#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Empty'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:delete
patch:
tags:
- Contact
summary: Update Contact
description: 'Update Contact
Updates an existing contact in the organization-wide address book. Only
the contact owner or an org owner can update contacts.
*Updates will overwrite the existing value of the field.*
'
operationId: updateContact
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: contact_id
in: path
description: ID of the desired Contact
required: true
schema:
type: string
example: Contact#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateContactRequest'
required: true
responses:
'200':
$ref: '#/components/responses/ContactInfoResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:contact:update:name
- manage:contact:update:addresses
- manage:contact:update:owner
- manage:contact:update:metadata
- manage:contact:update:editPolicy
components:
schemas:
Empty:
default: null
SolanaAddressInfo:
type: object
description: A Solana address and the cluster it is on.
required:
- cluster
- address
properties:
address:
type: string
description: The Solana address.
example: EPw4LsNwCYCYXace1BKvwLcd7oeZzRiYGuGE5zfPvoPy
cluster:
$ref: '#/components/schemas/SolanaCluster'
PreconditionErrorOwnCodes:
type: string
enum:
- FailOnMfaRequired
- KeyRegionLocked
- KeyRegionChangedRecently
- MfaRegionLocked
- Eth2ProposerSlotTooLow
- Eth2AttestationSourceEpochTooLow
- Eth2AttestationTargetEpochTooLow
- Eth2ConcurrentBlockSigning
- Eth2ConcurrentAttestationSigning
- Eth2MultiDepositToNonGeneratedKey
- Eth2MultiDepositUnknownInitialDeposit
- Eth2MultiDepositWithdrawalAddressMismatch
- ConcurrentSigningWhenTimeLimitPolicyIsDefined
- BabylonEotsConcurrentSigning
- TendermintStateError
- TendermintConcurrentSigning
- MfaApprovalsNotYetValid
EditPolicy:
type: object
description: 'A policy which governs when and who is allowed to update the entity this policy is
attached to (e.g., a role or a key).
When attached to a role, by default, this policy applies to role deletion and all
role updates (including adding/removing keys and users); in terms of scopes,
it applies to `manage:role:update:*` and `manage:role:delete`.
When attached to a key, by default, this policy applies to key deletion, all
key updates, and adding/removing that key to/from a role; in terms of scopes,
it applies to `manage:key:update:*`, `manage:key:delete`, `manage:role:update:key:*`.
This default can be changed by setting the `applies_to_scopes` property.'
properties:
applies_to_scopes:
$ref: '#/components/schemas/ScopeSet'
mfa:
allOf:
- $ref: '#/components/schemas/MfaPolicy'
time_lock_until:
allOf:
- $ref: '#/components/schemas/EpochDateTime'
BadRequestErrorCode:
type: string
enum:
- GenericBadRequest
- DisallowedAllowRuleReference
- InvalidPaginationToken
- InvalidEmail
- InvalidEmailTemplate
- QueryMetricsError
- InvalidTelegramData
- ValidationError
- WebhookPolicyTimeoutOutOfBounds
- WebhookPolicyDisallowedUrlScheme
- WebhookPolicyDisallowedUrlHost
- WebhookPolicyDisallowedHeaders
- ReservedName
- UserEmailNotConfigured
- EmailPasswordNotFound
- PasswordAuthNotAllowedByInvitation
- OneTimeCodeExpired
- InvalidBody
- InvalidJwt
- InvitationNoLongerValid
- TokenRequestError
- InvalidMfaReceipt
- InvalidMfaPolicyCount
- InvalidMfaPolicyNumAuthFactors
- InvalidMfaPolicyNumAllowedApprovers
- InvalidMfaPolicyGracePeriodTooLong
- InvalidBabylonStakingPolicyParams
- InvalidSuiTxReceiversEmptyAllowlist
- InvalidBtcTxReceiversEmptyAllowlist
- InvalidRequireRoleSessionAllowlist
- InvalidCreateKeyCount
- InvalidDiffieHellmanCount
- OrgInviteExistingUser
- OrgUserAlreadyExists
- OrgNameTaken
- KwkNotFoundInRegion
- OrgIsNotOrgExport
- RoleNameTaken
- PolicyNameTaken
- NameTaken
- ContactNameInvalid
- ContactAddressesInvalid
- ContactLabelInvalid
- ContactModified
- PolicyNotFound
- PolicyVersionNotFound
- PolicyRuleDisallowedByType
- PolicyTypeDisallowed
- PolicyDuplicateError
- PolicyStillAttached
- PolicyModified
- PolicyNotAttached
- AddKeyToRoleCountTooHigh
- InvalidKeyId
- InvalidTimeLockAlreadyInThePast
- InvalidRestrictedScopes
- InvalidUpdate
- InvalidMetadataLength
- InvalidLength
- InvalidKeyMaterialId
- KeyNotFound
- SiweChallengeNotFound
- SiweInvalidRequest
- SiwsChallengeNotFound
- SiwsInvalidRequest
- UserExportDerivedKey
- UserExportPublicKeyInvalid
- NistP256PublicKeyInvalid
- UnableToAccessSmtpRelay
- UserExportInProgress
- RoleNotFound
- InvalidRoleNameOrId
- InvalidMfaReceiptOrgIdMissing
- InvalidMfaReceiptInvalidOrgId
- MfaRequestNotFound
- InvalidKeyType
- InvalidPropertiesForKeyType
- MismatchedKeyPropertiesPatch
- MissingBinanceApiKey
- MissingBybitApiKey
- MissingCoinbaseApiKey
- BinanceKeyMasterMismatch
- BybitAccountMismatch
- InvalidKeyMaterial
- InvalidHexValue
- InvalidBase32Value
- InvalidBase58Value
- InvalidBase64Value
- InvalidSs58Value
- InvalidForkVersionLength
- InvalidEthAddress
- InvalidStellarAddress
- InvalidOrgNameOrId
- InvalidUpdateOrgRequestDisallowedMfaType
- InvalidUpdateOrgRequestEmptyAllowedMfaTypes
- EmailOtpDelayTooShortForRegisterMfa
- InvalidStakeDeposit
- InvalidBlobSignRequest
- InvalidDiffieHellmanRequest
- InvalidSolanaSignRequest
- InvalidEip712SignRequest
- InvalidEip7702SignRequest
- OnlySpecifyOne
- IncompatibleParams
- NoOidcDataInProof
- InvalidEvmSignRequest
- InvalidEth2SignRequest
- InvalidDeriveKeyRequest
- InvalidStakingAmount
- CustomStakingAmountNotAllowedForWrapperContract
- InvalidUnstakeRequest
- InvalidCreateUserRequest
- UserAlreadyExists
- IdpUserAlreadyExists
- CognitoUserAlreadyOrgMember
- UserNotFound
- UserWithEmailNotFound
- PolicyKeyMismatch
- EmptyScopes
- InvalidScopesForRoleSession
- InvalidLifetime
- NoSingleKeyForUser
- InvalidOrgPolicyRule
- SourceIpAllowlistEmpty
- LimitWindowTooLong
- Erc20ContractDisallowed
- EmptyRuleError
- PolicyFieldValidationError
- OptionalListEmpty
- MultipleExclusiveFieldsProvided
- DuplicateFieldEntry
- InvalidRange
- InvalidOrgPolicyRepeatedRule
- InvalidSuiTransaction
- SuiSenderMismatch
- AvaSignHashError
- AvaSignError
- BtcSegwitHashError
- BtcTaprootHashError
- BtcSignError
- TaprootSignError
- Eip712SignError
- InvalidMemberRoleInUserAdd
- InvalidMemberRoleInRecipientAdd
- ThirdPartyUserAlreadyExists
- OidcIdentityAlreadyExists
- UserAlreadyHasIdentity
- ThirdPartyUserNotFound
- DeleteOidcUserError
- DeleteUserError
- SessionRoleMismatch
- InvalidOidcToken
- InvalidOidcIdentity
- OidcIssuerUnsupported
- OidcIssuerNotAllowed
- OidcIssuerNoApplicableJwk
- FidoKeyAlreadyRegistered
- FidoKeySignCountTooLow
- FidoVerificationFailed
- FidoChallengeMfaMismatch
- UnsupportedLegacyCognitoSession
- InvalidIdentityProof
- PaginationDataExpired
- ExistingKeysViolateExclusiveKeyAccess
- ExportDelayTooShort
- ExportWindowTooLong
- InvalidTotpFailureLimit
- InvalidEip191SignRequest
- CannotResendUserInvitation
- InvalidNotificationEndpointCount
- CannotDeletePendingSubscription
- InvalidNotificationUrlProtocol
- EmptyOneOfOrgEventFilter
- EmptyAllExceptOrgEventFilter
- InvalidTapNodeHash
- InvalidOneTimeCode
- MessageNotFound
- MessageAlreadySigned
- MessageRejected
- MessageReplaced
- InvalidMessageType
- EmptyAddress
- InvalidEth2SigningPolicySlotRange
- InvalidEth2SigningPolicyEpochRange
- InvalidEth2SigningPolicyTimestampRange
- InvalidEth2SigningPolicyOverlappingRule
- RpcUrlMissing
- MmiChainIdMissing
- EthersInvalidRpcUrl
- EthersGetTransactionCountError
- InvalidPassword
- BabylonStakingFeePlusDustOverflow
- BabylonStaking
- BabylonStakingIncorrectKey
- BabylonStakingSegwitNonDeposit
- BabylonStakingRegistrationRequiresTaproot
- PsbtSigning
- TooManyResets
- TooManyRequests
- TooManyFailedLogins
- BadBtcMessageSignP2shFlag
- InvalidTendermintRequest
- PolicyVersionMaxReached
- PolicyVersionInvalid
- PolicySecretLimitReached
- PolicySecretTooLarge
- InvalidImportKey
- AlienOwnerInvalid
- EmptyUpdateRequest
- InvalidPolicyReference
- PolicyEngineDisabled
- InvalidWasmPolicy
- CelProgramTooLarge
- InvalidPolicy
- RedundantDerivationPath
- ImportKeyMissing
- InvalidAbiMethods
- BabylonCovSign
- InvalidPolicyLogsRequest
- UserProfileMigrationMultipleEntries
- UserProfileMigrationTooManyItems
- InputTooShort
- InvalidTweakLength
- InvalidCustomChains
- InvalidRpcRequest
MfaRequiredArgs:
type: object
required:
- id
- ids
- org_id
properties:
id:
type: string
description: Always set to first MFA id from `Self::ids`
ids:
type: array
items:
type: string
minLength: 1
description: Non-empty MFA request IDs
org_id:
type: string
description: Organization id
policy_eval_tree:
description: Optional policy evaluation tree (included in signer responses, when requested)
session:
allOf:
- $ref: '#/components/schemas/NewSessionResponse'
CreateContactRequest:
type: object
description: The information needed to create a Contact.
required:
- name
properties:
addresses:
$ref: '#/components/schemas/AddressMap'
edit_policy:
allOf:
- $ref: '#/components/schemas/EditPolicy'
labels:
type: array
items:
$ref: '#/components/schemas/ContactLabel'
description: Optional labels to associate with the contact.
example:
- cubist:erc20_token
uniqueItems: true
metadata:
description: Optional user-defined metadata about the contact.
name:
type: string
description: 'The name for the contact. Must be a unique name among contacts in the
org. Name must consist of alphanumeric characters, spaces, `.` and `-`,
and cannot be longer than 50 characters.'
example: Satoshi Nakamoto
PreconditionErrorCode:
oneOf:
- $ref: '#/components/schemas/PreconditionErrorOwnCodes'
- $ref: '#/components/schemas/PolicyErrorCode'
AcceptedValueCode:
type: string
enum:
- SignDryRun
- BinanceDryRun
- BybitDryRun
- CoinbaseDryRun
- MfaRequired
PolicyErrorOwnCodes:
type: string
enum:
- Inapplicable
- SuiTxReceiversDisallowedTransactionKind
- SuiTxReceiversDisallowedTransferAddress
- SuiTxReceiversDisallowedCommand
- BtcTxDisallowedOutputs
- BtcSignatureExceededValue
- BtcValueOverflow
- BtcSighashTypeDisallowed
- Eip7702AddressMismatch
- EvmTxReceiverMismatch
- EvmTxChainIdMismatch
- EvmTxSenderMismatch
- EvmTxExceededValue
- EvmTxExceededGasCost
- EvmTxGasCostUndefined
- EvmDataDisallowed
- Erc20DataInvalid
- EvmContractAddressUndefined
- EvmContractChainIdUndefined
- EvmDataNotDefined
- EvmDataInvalid
- EvmContractNotInAllowlist
- Erc20ExceededTransferLimit
- Erc20ReceiverMismatch
- Erc20ExceededApproveLimit
- Erc20SpenderMismatch
- EvmFunctionNotInAllowlist
- EvmFunctionCallInvalid
- EvmFunctionCallDisallowedArg
- PolicyDisjunctionError
- PolicyNegationError
- Eth2ExceededMaxUnstake
- Eth2ConcurrentUnstaking
- NotInIpv4Allowlist
- NotInOriginAllowlist
- NotInOperationAllowlist
- InvalidSourceIp
- RawSigningNotAllowed
- DiffieHellmanExchangeNotAllowed
- Eip712SigningNotAllowed
- OidcSourceNotAllowed
- NoOidcAuthSourcesDefined
- AddKeyToRoleDisallowed
- KeysAlreadyInRole
- KeyInMultipleRoles
- KeyAccessError
- RequireRoleSessionKeyAccessError
- BtcMessageSigningNotAllowed
- Eip191SigningNotAllowed
- Eip7702SigningNotAllowed
- TaprootSigningDisallowed
- SegwitSigningDisallowed
- PsbtSigningDisallowed
- BabylonStakingDisallowed
- TimeLocked
- CelPolicyDenied
- BabylonStakingNetwork
- BabylonStakingParamsVersion
- BabylonStakingExplicitParams
- BabylonStakingStakerPk
- BabylonStakingFinalityProviderPk
- BabylonStakingLockTime
- BabylonStakingValue
- BabylonStakingChangeAddress
- BabylonStakingFee
- BabylonStakingWithdrawalAddress
- BabylonStakingBbnAddress
- SolanaInstructionCountLow
- SolanaInstructionCountHigh
- SolanaNotInInstructionAllowlist
- SolanaInstructionMismatch
- WasmPoliciesDisabled
- WasmPolicyDenied
- WasmPolicyFailed
- WebhookPoliciesDisabled
- DeniedByWebhook
- ExplicitlyDenied
BtcChain:
type: string
description: Supported BTC chains.
enum:
- mainnet
- signet
AcceptedValue:
oneOf:
- type: object
required:
- SignDryRun
properties:
SignDryRun:
$ref: '#/components/schemas/SignDryRunArgs'
- type: object
required:
- BinanceDryRun
properties:
BinanceDryRun:
$ref: '#/components/schemas/BinanceDryRunArgs'
- type: object
required:
- BybitDryRun
properties:
BybitDryRun:
$ref: '#/components/schemas/BybitDryRunArgs'
- type: object
required:
- CoinbaseDryRun
properties:
CoinbaseDryRun:
$ref: '#/components/schemas/CoinbaseDryRunArgs'
- type: object
required:
- MfaRequired
properties:
MfaRequired:
$ref: '#/components/schemas/MfaRequiredArgs'
description: Different responses we return for success status codes.
Id:
type: string
ForbiddenErrorCode:
type: string
enum:
- AlienKeyCreate
- CannotAssumeIdentity
- SentryDisallowed
- PasskeyLoginDisabled
- PasskeyNotRegistered
- CannotCreateOrg
- WrongMfaEmailOtpJwt
- OrgFlagNotSet
- FidoRequiredToRemoveTotp
- OidcIdentityLimitReached
- OidcScopeCeilingMissing
- OidcIssuerNotAllowedForMemberRole
- OidcNoMemberRolesAllowed
- EmailOtpNotConfigured
- MfaChallengeExpired
- ChainIdNotAllowed
- InvalidOrg
- OrgIdMismatch
- SessionForWrongOrg
- SelfDelete
- SelfDisable
- SelfMfaReset
- InvalidOrgMembershipRoleChange
- UserDisabled
- OrgDisabled
- OrgNotFound
- OrgWithoutOwner
- OrphanedUser
- OidcUserNotFound
- UserNotInOrg
- UserNotOrgOwner
- UserNotKeyOwner
- InvalidRole
- DisabledRole
- KeyDisabled
- KeyNotInRole
- ContactNotInOrg
- UserExportRequestNotInOrg
- UserExportRequestInvalid
- UserExportDisabled
- UserNotOriginalKeyOwner
- UserNotInRole
- MustBeFullMember
- SessionExpired
- SessionChanged
- SessionRevoked
- ExpectedUserSession
- SessionRoleChanged
- ScopedNameNotFound
- SessionInvalidEpochToken
- SessionInvalidRefreshToken
- SessionRefreshTokenExpired
- InvalidAuthHeader
- SessionNotFound
- InvalidArn
- SessionInvalidAuthToken
- SessionAuthTokenExpired
- SessionPossiblyStolenToken
- MfaDisallowedIdentity
- MfaDisallowedApprover
- MfaTypeNotAllowed
- MfaNotApprovedYet
- MfaConfirmationCodeMismatch
- MfaHttpRequestMismatch
- MfaRemoveBelowMin
- MfaOrgRequirementNotMet
- MfaRegistrationDisallowed
- TotpAlreadyConfigured
- TotpConfigurationChanged
- MfaTotpBadConfiguration
- MfaTotpBadCode
- MfaTotpRateLimit
- ImproperSessionScope
- FullSessionRequired
- SessionWithoutAnyScopeUnder
- UserRoleUnprivileged
- MemberRoleForbidden
- MfaNotConfigured
- RemoveLastOidcIdentity
- OperationNotAllowed
- OrgExportRetrievalDisabled
- ChangingKeyExportRequirementIsDisabled
- AutoAddBlsKeyToProtectedRole
- UserNotPolicyOwner
- UserNotContactOwner
- UserNotBucketOwner
- LegacySessionCannotHaveScopeCeiling
- RoleInParentOrgNotAllowed
- RemoveKeyFromRoleUserNotAllowed
- SiweChallengeExpired
- SiweMessageNotValid
- SiweMessageInvalidSignature
- SiwsChallengeExpired
- SiwsDomain
- SiwsMessageInvalid
- Acl
AddressMap:
type: object
description: The addresses associated with a contact.
properties:
btc:
type: array
items:
$ref: '#/components/schemas/BitcoinAddressInfo'
description: Bitcoin addresses.
uniqueItems: true
canton:
type: array
items:
$ref: '#/components/schemas/CantonPartyInfo'
description: Canton parties.
uniqueItems: true
evm:
type: array
items:
$ref: '#/components/schemas/EvmAddressInfo'
description: EVM addresses.
uniqueItems: true
sol:
type: array
items:
$ref: '#/components/schemas/SolanaAddressInfo'
description: Solana addresses.
uniqueItems: true
sui:
type: array
items:
$ref: '#/components/schemas/SuiAddressInfo'
description: SUI addresses.
uniqueItems: true
Seconds:
type: integer
format: int64
description: 'Duration measured in seconds
A wrapper type for serialization that encodes a `Duration` as a `u64` representing the number of seconds.'
minimum: 0
OperationKind:
type: string
description: All different kinds of sensitive operations
enum:
- AvaSign
- AvaChainTxSign
- BabylonCovSign
- BabylonRegistration
- BabylonStaking
- BinanceSubToMaster
- BinanceSubToSub
- BinanceUniversalTransfer
- BinanceSubAccountAssets
- BinanceAccountInfo
- BinanceSubAccountTransferHistory
- BinanceUniversalTransferHistory
- BinanceWithdraw
- BinanceWithdrawHistory
- BinanceDeposit
- BinanceDepositHistory
- BinanceListSubAccounts
- BinanceCoinInfo
- BlobSign
- BtcMessageSign
- BtcSign
- BybitQueryUser
- BybitQuerySubMembers
- BybitQueryCoinsBalance
- BybitQueryDepositAddress
- BybitUniversalTransfer
- BybitWithdraw
- BybitWithdrawals
- CoinbaseListAccounts
- CoinbaseListPortfolios
- CoinbaseMoveFunds
- DiffieHellman
- PsbtSign
- TaprootSign
- Eip191Sign
- Eip712Sign
- Eip7702Sign
- EotsNonces
- EotsSign
- Eth1Sign
- Eth2Sign
- Eth2Stake
- Eth2Unstake
- SolanaSign
- SuiSign
- TendermintSign
- RoleUpdate
ContactInfoResponse:
allOf:
- $ref: '#/components/schemas/Contact'
- type: object
required:
- id
- addresses
properties:
addresses:
$ref: '#/components/schemas/AddressMap'
id:
$ref: '#/components/schemas/Id'
description: Information about a Contact.
UnauthorizedErrorCode:
type: string
enum:
- AuthorizationHeaderMissing
- EndpointRequiresUserSession
- RefreshTokenMissing
SignerErrorOwnCodes:
type: string
enum:
- PreComputed
- StatusCodeWithMessage
- JrpcError
- UnhandledError
- ProxyStartError
- EnclaveError
- PolicyErrorWithEvalTree
- RpcApi
CantonEnvironment:
type: string
description: Supported Canton environments.
enum:
- mainnet
- devnet
ScopeSet:
oneOf:
- type: string
description: All scopes
enum:
- All
- type: object
required:
- AllExcept
properties:
AllExcept:
type: array
items:
$ref: '#/components/schemas/Scope'
description: All scopes except these (including those transitively implied).
- type: object
required:
- AllOf
properties:
AllOf:
type: array
items:
$ref: '#/components/schemas/Scope'
description: All of these scopes (including those transitively implied).
description: A set of scopes.
SignDryRunArgs:
type: object
required:
- mfa_requests
properties:
mfa_requests:
type: array
items:
$ref: '#/components/schemas/MfaRequestInfo'
description: Whether MFA is required
policy_eval_tree:
description: Optional policy evaluation tree, if requested
SuiAddressInfo:
type: object
description: A Sui address and its chain.
required:
- chain
- address
properties:
address:
type: string
description: The Sui address.
example: '0x4e8712e38b09b5467c10fdc40fa7865a65563983eeb74b246df981e61a66b98d'
chain:
$ref: '#/components/schemas/SuiChain'
EpochDateTime:
type: integer
format: int64
description: 'DateTime measured in seconds since unix epoch.
A wrapper type for serialization that encodes a [`SystemTime`] as a [`u64`]
representing the number of seconds since [`SystemTime::UNIX_EPOCH`].'
minimum: 0
CantonPartyInfo:
type: object
description: Information about a specific Canton party.
required:
- address
- chain
properties:
address:
type: string
description: A Canton party.
example: Alice::1220f2fe29866fd6a0009ecc8a64ccdc09f1958bd0f801166baaee469d1251b2eb72
chain:
$ref: '#/components/schemas/CantonEnvironment'
B32:
type: string
description: Wrapper around a zeroizing 32-byte fixed-size array
CoinbaseDryRunArgs:
type: object
required:
- method
- url
properties:
method:
type: string
description: The Coinbase API method that would have been used
url:
type: string
description: The Coinbase API url method that would have been called
ErrorResponse:
type: obj
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cubist/refs/heads/main/openapi/cubist-contact-api-openapi.yml