diff --git a/api.yaml b/api.yaml index ba3c097..56029b1 100644 --- a/api.yaml +++ b/api.yaml @@ -4174,6 +4174,19 @@ paths: type: string title: uuid description: Filter by specific counterparty connection IDs. When provided, only settlements involving these connections as counterparties will be returned. + - name: statuses + description: Filter by settlement statuses. When provided, only settlements with these statuses will be returned. + in: query + schema: + type: array + items: + type: string + enum: + - failed + - completed + - pending + - rejected + description: Filter by settlement statuses. When provided, only settlements with these statuses will be returned. - name: enterpriseId description: The enterprise identifier of the client. This identifies the client enterprise making the API request. in: path @@ -8827,13 +8840,226 @@ paths: $ref: '#/components/schemas/MarketDataError' x-licenses: - cryptoCompare + /api/document-service/v1/documents: + post: + summary: Create a new document + description: Creates a new document and returns presigned URLs for file uploads + operationId: documents.post.v1.documents + tags: + - Know Your Business (KYB) + parameters: [] + requestBody: + description: Body + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDocumentRequest' + responses: + '201': + description: '201' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDocumentResponse' + '400': + description: '400' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '401': + description: '401' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '500': + description: '500' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + /api/document-service/v1/documents/{documentId}: + get: + summary: Retrieve document information + description: Get details about a specific document including file information. Users can only access documents they created. + operationId: documents.get.v1.documents.id + tags: + - Know Your Business (KYB) + parameters: + - name: documentId + in: path + required: true + schema: + type: string + format: uuid + description: Unique identifier for the document + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/GetDocumentResponse' + '400': + description: '400' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '401': + description: '401' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '403': + description: '403' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '404': + description: '404' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '500': + description: '500' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + /api/document-service/v1/documents/{documentId}/files/{fileId}: + patch: + summary: Update file upload status + description: Update the status of a file after it has been uploaded to the presigned URL. This endpoint is called by the client after successful upload. + operationId: documents.patch.v1.documents.id.files.id + tags: + - Know Your Business (KYB) + parameters: + - name: documentId + in: path + required: true + schema: + type: string + format: uuid + description: Unique identifier for the document + - name: fileId + in: path + required: true + schema: + type: string + description: Unique identifier for the file + requestBody: + description: Body + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFileStatusRequest' + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFileStatusResponse' + '400': + description: '400' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '401': + description: '401' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '403': + description: '403' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '404': + description: '404' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '500': + description: '500' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + /api/document-service/v1/documents/{documentId}/verify: + post: + summary: Verify document upload status + description: Verify the upload status of all files in a document by checking with the storage provider. Updates file and document statuses based on actual verification results. + operationId: documents.post.v1.documents.id.verify + tags: + - Know Your Business (KYB) + parameters: + - name: documentId + in: path + required: true + schema: + type: string + format: uuid + description: Unique identifier for the document + requestBody: + description: Body + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyDocumentRequest' + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyDocumentResponse' + '400': + description: '400' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '401': + description: '401' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '403': + description: '403' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '404': + description: '404' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' + '500': + description: '500' + content: + application/json: + schema: + $ref: '#/components/schemas/GetInternalDocumentsInternalError' /api/evs/v1/identity: get: - summary: Get Identity + summary: Get KYC Identity description: Get a Persona transaction. operationId: entity.validation.identity.get tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: organizationId in: query @@ -8878,11 +9104,11 @@ paths: schema: $ref: '#/components/schemas/PlatformError2' post: - summary: Create Identity + summary: Create KYC Identity description: Create an identity for a user. operationId: entity.validation.identity.create tags: - - Entity Validation + - Know Your Customer (KYC) parameters: [] requestBody: content: @@ -9249,11 +9475,11 @@ paths: $ref: '#/components/schemas/IdentityCreateResponse' /api/evs/v1/identity/{id}: patch: - summary: Patch Update Identity - description: Update an existing Persona transaction. + summary: Update KYC Identity + description: Update an existing KYC identity with new information. operationId: entity.validation.identity.update tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: id in: path @@ -9440,11 +9666,11 @@ paths: $ref: '#/components/schemas/IdentityUpdateResponse' /api/evs/v1/identity/{id}/signatures: post: - summary: POST Identity Submit Signatures - description: Submit Contract Signatures for a given identity + summary: Submit KYC Signatures + description: Submit contract signatures for a given KYC identity. operationId: entity.validation.identity.signatures tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: id in: path @@ -9481,11 +9707,11 @@ paths: $ref: '#/components/schemas/PlatformError2' /api/evs/v1/identity/{identityId}/document: post: - summary: Create Identity Document - description: Create a Document for an Identity. + summary: Add KYC Documents + description: Add and validate KYC documents for an existing identity. Documents are verified with the document service before being associated with the identity. operationId: entity.validation.identity.document.create tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: identityId in: path @@ -9553,11 +9779,11 @@ paths: $ref: '#/components/schemas/PlatformError2' /api/evs/v1/identity/{identityId}/document/{documentId}: put: - summary: Update Identity Document - description: Upodate a Document for an Identity. + summary: Update KYC Document + description: Update KYC Document. operationId: entity.validation.identity.document.update tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: identityId in: path @@ -9631,11 +9857,11 @@ paths: $ref: '#/components/schemas/PlatformError2' /api/evs/v1/identity/document: get: - summary: Get Identity Document - description: Get a document for an Identity. + summary: Get KYC Document + description: Get a KYC document for an identity. operationId: entity.validation.identity.document.get tags: - - Entity Validation + - Know Your Customer (KYC) parameters: - name: identityId in: query @@ -9666,238 +9892,1575 @@ paths: application/json: schema: $ref: '#/components/schemas/PlatformError2' - //api/notifications/v1/user/subscriptions: + /api/identity-service/v1/products: get: + summary: List BitGo Products + operationId: identities.get.v1.products tags: - - User Management Notification - summary: Get user subscriptions - description: Retrieves the notification subscriptions for the authenticated user. Supports optional filtering by communication channel, category name, and notification name. Returns a list of subscriptions relevant to the user's preferences. - operationId: getUserSubscriptions - parameters: - - name: channel - in: query - required: false - schema: - type: string - - name: categoryName - in: query - required: false - schema: - type: string - - name: notificationName - in: query - required: false - schema: - type: string + - BitGo Products + parameters: [] responses: '200': - description: List of user subscriptions + description: '200' content: application/json: schema: - $ref: '#/components/schemas/UserSubscriptionsResponse' - put: - tags: - - User Management Notification - summary: Set user subscriptions - description: Updates the notification subscriptions for the authenticated user. Accepts a list of subscription changes and applies them, replacing the user's current subscriptions with the provided set. - operationId: setUserSubscriptions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationSubscriptionListRequest' - required: true - responses: - '200': - description: User subscriptions updated + type: array + items: + type: object + properties: + id: + type: string + format: uuid + product: + $ref: '#/components/schemas/WPBitGoProduct' + required: + - id + - product + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: {} + '500': + description: '500' content: application/json: schema: type: object - //api/notifications/v1/admin/user/{bitgoUserId}/subscriptions: + properties: {} + /api/identity-service/v1/identities: get: + summary: List KYB Identities + description: Retrieve a list of identities created by the authenticated user. Requires User-Id header. + operationId: identities.get.v1.identities tags: - - Admin - summary: Get user notification subscriptions (admin) - description: Retrieves the notification subscriptions for a specified user. Admins can optionally filter by communication channel, category name, or notification name to narrow the results. Useful for auditing or managing user notification preferences. - operationId: getUserSubscriptions_1 + - Know Your Business (KYB) parameters: - - name: bitgoUserId - in: path - required: true - schema: - type: string - - name: channel + - name: enterpriseId in: query - required: false schema: type: string - - name: categoryName + - name: organizationId in: query - required: false schema: type: string - - name: notificationName + - name: userId in: query - required: false schema: type: string responses: '200': - description: List of user subscriptions + description: '200' content: application/json: schema: - $ref: '#/components/schemas/UserSubscriptionsResponse' - x-internal: 'true' - put: - tags: - - Admin - summary: Set user notification subscriptions (admin) - description: Allows an admin to update or create notification subscriptions for a user. Accepts a batch of subscriptions and replaces the user's current subscriptions with the provided set. Useful for bulk management of user notification preferences. - operationId: setUserSubscriptions_1 - parameters: - - name: user-id - in: header - required: true - schema: - type: string - - name: bitgoUserId - in: path - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationSubscriptionListRequest' - required: true - responses: - '200': - description: User subscriptions updated + type: array + items: + discriminator: + propertyName: type + oneOf: + - type: object + properties: + type: + type: string + enum: + - individual + description: Type of identity + userId: + type: string + description: The ID of the user + individual: + $ref: '#/components/schemas/Individual' + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - userId + - individual + - id + - requestedProducts + - requirements + - finalizeSubmission + - type: object + properties: + type: + type: string + enum: + - business + description: Type of identity + organizationId: + type: string + description: The ID of the organization + enterpriseId: + type: string + description: The ID of the enterprise + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonResponse' + description: List of associated people linked to this identity + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - organizationId + - enterpriseId + - business + - associatedPeople + - id + - requestedProducts + - requirements + - finalizeSubmission + '400': + description: '400' content: application/json: schema: - type: string - x-internal: 'true' - //api/notifications/v1/tokens: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} post: + summary: Create KYB Identity + description: Create an identity with requested products. Requires User-Id header to associate the identity with the creating user. + operationId: identities.post.v1.identities tags: - - User Management Notification - summary: Add device token for user - description: Registers a new device token for the authenticated user. If the token already exists, updates its association or last set time as appropriate. Used for enabling push notifications to the user's device. - operationId: addUserDeviceToken + - Know Your Business (KYB) + parameters: [] requestBody: + description: Body content: application/json: schema: - $ref: '#/components/schemas/AddDeviceTokenRequest' - required: true + $ref: '#/components/schemas/CreateIdentityBody' responses: '201': - description: Device token added + description: '201' content: application/json: schema: - $ref: '#/components/schemas/AddDeviceTokenResponse' - //api/notifications/v1/admin/resend: - post: + discriminator: + propertyName: type + oneOf: + - type: object + properties: + type: + type: string + enum: + - individual + description: Type of identity + userId: + type: string + description: The ID of the user + individual: + $ref: '#/components/schemas/Individual' + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - userId + - individual + - id + - requestedProducts + - requirements + - finalizeSubmission + - type: object + properties: + type: + type: string + enum: + - business + description: Type of identity + organizationId: + type: string + description: The ID of the organization + enterpriseId: + type: string + description: The ID of the enterprise + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonResponse' + description: List of associated people linked to this identity + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - organizationId + - enterpriseId + - business + - associatedPeople + - id + - requestedProducts + - requirements + - finalizeSubmission + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + /api/identity-service/v1/identities/{identityId}: + patch: + summary: Update KYB Identity + description: Update an existing identity with new information. Requires User-Id header and user can only update identities they created. Only the fields provided in the request body will be updated. + operationId: identities.patch.v1.identities.id tags: - - Admin - summary: Admin resend notification - description: Allows an admin with the appropriate permission to resend a notification email to a user. This endpoint is restricted to users with 'updateIndexerNotification' authority and is used to re-fire transaction webhook notifications or similar events. - operationId: resendNotification + - Know Your Business (KYB) parameters: - - name: user-id - in: header + - name: identityId + in: path required: true schema: type: string + description: The unique ID of the identity to update requestBody: + description: Body content: application/json: schema: - $ref: '#/components/schemas/ResendNotificationRequest' - required: true + $ref: '#/components/schemas/UpdateIdentityBody' responses: '200': - description: Notification resent + description: '200' content: application/json: schema: - type: string - x-internal: 'true' - //api/notifications/v1/admin/email/unblock: - post: + discriminator: + propertyName: type + oneOf: + - type: object + properties: + type: + type: string + enum: + - individual + description: Type of identity + userId: + type: string + description: The ID of the user + individual: + $ref: '#/components/schemas/Individual' + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - userId + - individual + - id + - requestedProducts + - requirements + - finalizeSubmission + - type: object + properties: + type: + type: string + enum: + - business + description: Type of identity + organizationId: + type: string + description: The ID of the organization + enterpriseId: + type: string + description: The ID of the enterprise + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonResponse' + description: List of associated people linked to this identity + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - organizationId + - enterpriseId + - business + - associatedPeople + - id + - requestedProducts + - requirements + - finalizeSubmission + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: {} + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + get: + summary: Get KYB Identity + description: Retrieve an identity by its ID, including all related information. Requires User-Id header and user can only access identities they created. + operationId: identities.get.v1.identities.id tags: - - Admin - summary: Unblock user email (admin) - description: Enables an admin to unblock a user's email address, allowing notifications to be sent again. Requires a reason for unblocking and is restricted to users with 'updateUser' authority. - operationId: unblockEmail + - Know Your Business (KYB) parameters: - - name: user-id - in: header + - name: identityId + in: path required: true schema: type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UnblockEmailRequest' - required: true + description: The unique ID of the identity to retrieve responses: '200': - description: Email unblocked + description: '200' content: application/json: schema: - type: string - x-internal: 'true' - //api/notifications/v1/admin/example: - get: + discriminator: + propertyName: type + oneOf: + - type: object + properties: + type: + type: string + enum: + - individual + description: Type of identity + userId: + type: string + description: The ID of the user + individual: + $ref: '#/components/schemas/Individual' + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - userId + - individual + - id + - requestedProducts + - requirements + - finalizeSubmission + - type: object + properties: + type: + type: string + enum: + - business + description: Type of identity + organizationId: + type: string + description: The ID of the organization + enterpriseId: + type: string + description: The ID of the enterprise + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonResponse' + description: List of associated people linked to this identity + id: + type: string + description: The unique ID of the created identity + ignoredFields: + type: array + items: + type: string + description: Ignored fields + requestedProducts: + type: array + items: + $ref: '#/components/schemas/RequestedProductResponse' + description: List of products requested for this identity + requirements: + type: array + items: + $ref: '#/components/schemas/Requirement' + description: List of requirements related to the identity + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents associated with the identity + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - organizationId + - enterpriseId + - business + - associatedPeople + - id + - requestedProducts + - requirements + - finalizeSubmission + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: + error: + type: string + description: Description of the error + details: + type: array + items: + type: string + description: Detailed error messages + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + /api/identity-service/v1/identities/{identityId}/documents: + post: + summary: Add KYB Documents + description: Add and validate documents for an existing identity. Documents are verified with the document service before being associated with the identity. + operationId: identities.post.v1.identities.id.documents tags: - - Admin - summary: Admin example endpoint - description: Returns a simple OK response for testing or demonstration purposes. Useful for verifying admin API connectivity. - operationId: getAdminExample + - Know Your Business (KYB) + parameters: + - name: identityId + in: path + required: true + schema: + type: string + format: uuid + description: The unique ID of the identity + requestBody: + description: Body + content: + application/json: + schema: + type: object + properties: + documents: + type: array + items: + type: object + properties: + documentId: + type: string + format: uuid + description: External document service ID (must be a valid UUID) + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + required: + - documentId + - documentType + minItems: 1 + description: List of documents to accept + required: + - documents + responses: + '201': + description: '201' + content: + application/json: + schema: + type: object + properties: + identityId: + type: string + description: The identity ID + acceptedDocuments: + type: array + items: + type: object + properties: + id: + type: string + description: Internal ID for the document association + documentId: + type: string + description: External document service ID + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Verification status + createdAt: + type: string + description: ISO timestamp when document was associated + updatedAt: + type: string + description: ISO timestamp when association was last updated + required: + - id + - documentId + - documentType + - status + - createdAt + - updatedAt + description: Successfully accepted documents + rejectedDocuments: + type: array + items: + type: object + properties: + documentId: + type: string + description: External document service ID + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + reason: + type: string + description: Reason for rejection + required: + - documentId + - documentType + - reason + description: Documents that failed validation + required: + - identityId + - acceptedDocuments + - rejectedDocuments + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '422': + description: '422' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + get: + summary: List KYB Documents + description: Retrieve all documents associated with an identity. + operationId: identities.get.v1.identities.id.documents + tags: + - Know Your Business (KYB) + parameters: + - name: identityId + in: path + required: true + schema: + type: string + format: uuid + description: The unique ID of the identity responses: '200': - description: OK response + description: '200' content: application/json: schema: - type: string - x-internal: 'true' - //api/notifications/v1/admin/audit-logs: + type: object + properties: + identityId: + type: string + description: The identity ID + documents: + type: array + items: + type: object + properties: + id: + type: string + description: Internal ID for the document association + documentId: + type: string + description: External document service ID + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Verification status + createdAt: + type: string + description: ISO timestamp when document was associated + updatedAt: + type: string + description: ISO timestamp when association was last updated + required: + - id + - documentId + - documentType + - status + - createdAt + - updatedAt + description: List of documents associated with the identity + required: + - identityId + - documents + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + /api/identity-service/v1/identities/{identityId}/documents/{identityDocumentId}: + put: + summary: Update KYB Document + description: Update a specific document association (document ID, type, or status). + operationId: identities.put.v1.identities.id.documents.id + tags: + - Know Your Business (KYB) + parameters: + - name: identityId + in: path + required: true + schema: + type: string + format: uuid + description: The unique ID of the identity + - name: identityDocumentId + in: path + required: true + schema: + type: string + format: uuid + description: The unique ID of the document association + requestBody: + description: Body + content: + application/json: + schema: + type: object + properties: + documentId: + type: string + format: uuid + description: New external document service ID (must be a valid UUID) + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: New document type + responses: + '200': + description: '200' + content: + application/json: + schema: + type: object + properties: + id: + type: string + description: Internal ID for the document association + documentId: + type: string + description: External document service ID + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Verification status + createdAt: + type: string + description: ISO timestamp when document was associated + updatedAt: + type: string + description: ISO timestamp when association was last updated + required: + - id + - documentId + - documentType + - status + - createdAt + - updatedAt + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '422': + description: '422' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + delete: + summary: Delete KYB Document + description: Remove a specific document association from an identity. + operationId: identities.delete.v1.identities.id.documents.id + tags: + - Know Your Business (KYB) + parameters: + - name: identityId + in: path + required: true + schema: + type: string + description: The unique ID of the identity + - name: identityDocumentId + in: path + required: true + schema: + type: string + description: The unique ID of the document association + responses: + '204': + description: '204' + content: + application/json: + schema: + type: object + properties: {} + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + /api/identity-service/v1/products-configs: get: + summary: Get BitGo Products Configuration + operationId: identities.get.v1.products-configs tags: - - Admin - summary: Get audit logs (admin) - description: Retrieves audit logs based on the provided filters. Allows admins to review actions and changes made within the notification command center for compliance and troubleshooting. - operationId: getAuditLogs + - BitGo Products parameters: - - name: user-id - in: header + - name: bitgoOrg + in: query + description: BitGo organization types + required: true + schema: + type: string + enum: + - BitGo Trust + - BitGo New York + - BitGo Germany + - BitGo Switzerland + - BitGo Europe ApS + - Frankfurt DE Trust + - BitGo Singapore + - BitGo Korea + - BitGo Mena Fze + - BitGo Custody MENA FZE + - BitGo Sister Trust 1 + - BitGo Inc + title: WPBitgoOrg + - name: accountType + in: query required: true schema: type: string - - name: request + enum: + - individual + - entity + - name: country in: query + description: Country (formatted as ISO 3166-1 alpha-3) required: true + schema: {} + - name: subdivision + in: query + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) schema: - $ref: '#/components/schemas/GetAuditLogsRequest' + type: string + minLength: 1 + maxLength: 3 + - name: source + in: query + schema: + type: string + enum: + - ftx + - ftx-retail + - ftx-bahamas + - ftx-bahamas-retail responses: '200': - description: Audit logs + description: '200' content: application/json: schema: - type: string - x-internal: 'true' - //api/notifications/v1/tokens/{deviceToken}: + oneOf: + - type: object + properties: + bitgoOrg: + $ref: '#/components/schemas/WPBitgoOrg' + accountType: + type: string + enum: + - individual + - entity + country: + description: Country (formatted as ISO 3166-1 alpha-3) + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + bitgoProducts: + type: array + items: + $ref: '#/components/schemas/WPBitGoProduct' + id: + type: string + format: uuid + required: + - bitgoOrg + - accountType + - country + - bitgoProducts + - id + - type: object + properties: + bitgoOrg: + $ref: '#/components/schemas/WPBitgoOrg' + accountType: + type: string + enum: + - individual + - entity + country: + description: Country (formatted as ISO 3166-1 alpha-3) + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + source: + type: string + enum: + - ftx + - ftx-retail + - ftx-bahamas + - ftx-bahamas-retail + bitgoProducts: + type: array + items: + $ref: '#/components/schemas/WPBitGoProduct' + id: + type: string + format: uuid + required: + - bitgoOrg + - accountType + - country + - source + - bitgoProducts + - id + '400': + description: '400' + content: + application/json: + schema: + type: object + properties: {} + '404': + description: '404' + content: + application/json: + schema: + type: object + properties: {} + '500': + description: '500' + content: + application/json: + schema: + type: object + properties: {} + /api/notifications/v1/user/subscriptions: + get: + tags: + - User Management Notification + summary: Get user subscriptions + description: Retrieves the notification subscriptions for the authenticated user. Supports optional filtering by communication channel, category name, and notification name. Returns a list of subscriptions relevant to the user's preferences. + operationId: getUserSubscriptions + parameters: + - name: channel + in: query + required: false + schema: + type: string + - name: categoryName + in: query + required: false + schema: + type: string + - name: notificationName + in: query + required: false + schema: + type: string + - name: request-id + in: header + required: false + schema: + type: string + responses: + '200': + description: List of user subscriptions + content: + application/json: + schema: + $ref: '#/components/schemas/UserSubscriptionsResponse' + put: + tags: + - User Management Notification + summary: Set user subscriptions + description: Updates the notification subscriptions for the authenticated user. Accepts a list of subscription changes and applies them, replacing the user's current subscriptions with the provided set. + operationId: setUserSubscriptions + parameters: + - name: request-id + in: header + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSubscriptionListRequest' + required: true + responses: + '200': + description: User subscriptions updated + content: + application/json: + schema: + type: object + /api/notifications/v1/tokens: + post: + tags: + - User Management Notification + summary: Add device token for user + description: Registers a new device token for the authenticated user. If the token already exists, updates its association or last set time as appropriate. Used for enabling push notifications to the user's device. + operationId: addUserDeviceToken + parameters: + - name: request-id + in: header + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddDeviceTokenRequest' + required: true + responses: + '201': + description: Device token added + content: + application/json: + schema: + $ref: '#/components/schemas/AddDeviceTokenResponse' + /api/notifications/v1/categories: + get: + tags: + - User Management Notification + summary: Get notification categories + description: Retrieves all available notification categories in the system. This is a public endpoint that does not require authentication. + operationId: getCategories + parameters: + - name: request-id + in: header + required: false + schema: + type: string + responses: + '200': + description: List of notification categories + content: + application/json: + schema: + $ref: '#/components/schemas/CategoriesResponse' + /api/notifications/v1/tokens/{deviceToken}: delete: tags: - User Management Notification @@ -9910,6 +11473,11 @@ paths: required: true schema: type: string + - name: request-id + in: header + required: false + schema: + type: string responses: '202': description: Device token removed @@ -22979,11 +24547,13 @@ paths: - $ref: '#/components/schemas/AdaStakingRequestPOSTBody' - $ref: '#/components/schemas/AdaUnStakingRequestPOSTBody' - $ref: '#/components/schemas/AsiStakingRequestPOSTBody' - - $ref: '#/components/schemas/WflrClaimRewardsRequestPOSTBody' - $ref: '#/components/schemas/AsiUnStakingRequestPOSTBody' - $ref: '#/components/schemas/AtomStakingRequestPOSTBody' - $ref: '#/components/schemas/AtomUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/AtomClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/AtomSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/AvaxCStakingRequestPOSTBody' + - $ref: '#/components/schemas/AvaxCUnStakingRequestPOSTBody' - $ref: '#/components/schemas/AvaxPStakingRequestPOSTBody' - $ref: '#/components/schemas/BabyStakingRequestPOSTBody' - $ref: '#/components/schemas/BabyUnStakingRequestPOSTBody' @@ -22991,6 +24561,8 @@ paths: - $ref: '#/components/schemas/BeraUnStakingRequestPOSTBody' - $ref: '#/components/schemas/BldStakingRequestPOSTBody' - $ref: '#/components/schemas/BldUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/BldClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/BldSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/BscStakingRequestPOSTBody' - $ref: '#/components/schemas/BscUnStakingRequestPOSTBody' - $ref: '#/components/schemas/BtcStakingRequestPOSTBody' @@ -22999,10 +24571,14 @@ paths: - $ref: '#/components/schemas/CoredaoUnStakingRequestPOSTBody' - $ref: '#/components/schemas/CoreumStakingRequestPOSTBody' - $ref: '#/components/schemas/CoreumUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/CoreumClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/CoreumSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/CosmosLikeStakingRequestPOSTBody' - $ref: '#/components/schemas/CosmosLikeUnStakingRequestPOSTBody' - $ref: '#/components/schemas/CronosStakingRequestPOSTBody' - $ref: '#/components/schemas/CronosUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/CronosClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/CronosSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/CsprStakingRequestPOSTBody' - $ref: '#/components/schemas/CsprUnStakingRequestPOSTBody' - $ref: '#/components/schemas/DotStakingRequestPOSTBody' @@ -23010,16 +24586,22 @@ paths: - $ref: '#/components/schemas/EigenStakingRequestPOSTBody' - $ref: '#/components/schemas/EigenUnStakingRequestPOSTBody' - $ref: '#/components/schemas/EthStakingRequestPOSTBody' + - $ref: '#/components/schemas/EthUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/EthUnStakingRequestPOSTBodyPrePectra' - $ref: '#/components/schemas/HashStakingRequestPOSTBody' - $ref: '#/components/schemas/HashUnStakingRequestPOSTBody' - $ref: '#/components/schemas/InjectiveStakingRequestPOSTBody' - $ref: '#/components/schemas/InjectiveUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/InjectiveClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/InjectiveSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/MaticStakingRequestPOSTBody' - $ref: '#/components/schemas/MaticUnStakingRequestPOSTBody' - $ref: '#/components/schemas/NearStakingRequestPOSTBody' - $ref: '#/components/schemas/NearUnStakingRequestPOSTBody' - $ref: '#/components/schemas/OsmoStakingRequestPOSTBody' - $ref: '#/components/schemas/OsmoUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/OsmoClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/OsmoSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/PolStakingRequestPOSTBody' - $ref: '#/components/schemas/PolUnStakingRequestPOSTBody' - $ref: '#/components/schemas/PolyxStakingRequestPOSTBody' @@ -23028,19 +24610,28 @@ paths: - $ref: '#/components/schemas/RethRocketUnStakingRequestPOSTBody' - $ref: '#/components/schemas/SeiStakingRequestPOSTBody' - $ref: '#/components/schemas/SeiUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/SeiClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/SeiSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/SolStakingRequestPOSTBody' - $ref: '#/components/schemas/SolUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/SolClaimRewardsRequestPOSTBody' - $ref: '#/components/schemas/SomiStakingRequestPOSTBody' + - $ref: '#/components/schemas/SomiUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/SomiClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/SomiSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/StxStakingRequestPOSTBody' - $ref: '#/components/schemas/StxUnStakingRequestPOSTBody' - $ref: '#/components/schemas/SuiStakingRequestPOSTBody' - $ref: '#/components/schemas/SuiUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/SuiClaimRewardsRequestPOSTBody' - $ref: '#/components/schemas/SuiWalStakingRequestPOSTBody' - $ref: '#/components/schemas/SuiWalUnStakingRequestPOSTBody' - $ref: '#/components/schemas/TaoStakingRequestPOSTBody' - $ref: '#/components/schemas/TaoUnStakingRequestPOSTBody' - $ref: '#/components/schemas/TiaStakingRequestPOSTBody' - $ref: '#/components/schemas/TiaUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/TiaClaimRewardsRequestPOSTBody' + - $ref: '#/components/schemas/TiaSwitchValidatorsRequestPOSTBody' - $ref: '#/components/schemas/TonStakingRequestPOSTBody' - $ref: '#/components/schemas/TonUnStakingRequestPOSTBody' - $ref: '#/components/schemas/TrxStakingRequestPOSTBody' @@ -23051,13 +24642,12 @@ paths: - $ref: '#/components/schemas/WethUnStakingRequestPOSTBody' - $ref: '#/components/schemas/WflrStakingRequestPOSTBody' - $ref: '#/components/schemas/WflrUnStakingRequestPOSTBody' + - $ref: '#/components/schemas/WflrClaimRewardsRequestPOSTBody' - $ref: '#/components/schemas/ZetaStakingRequestPOSTBody' - $ref: '#/components/schemas/ZetaUnStakingRequestPOSTBody' examples: AdaStakingRequestPOSTBodyExample: $ref: '#/components/examples/AdaStakingRequestPOSTBodyExample' - WflrClaimRewardsRequestPOSTBodyExample: - $ref: '#/components/examples/WflrClaimRewardsRequestPOSTBodyExample' AdaUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/AdaUnStakingRequestPOSTBodyExample' AsiStakingRequestPOSTBodyExample: @@ -23068,8 +24658,14 @@ paths: $ref: '#/components/examples/AtomStakingRequestPOSTBodyExample' AtomUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/AtomUnStakingRequestPOSTBodyExample' + AtomClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/AtomClaimRewardsRequestPOSTBodyExample' + AtomSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/AtomSwitchValidatorRequestPOSTBodyExample' AvaxCStakingRequestPOSTBodyExample: $ref: '#/components/examples/AvaxCStakingRequestPOSTBodyExample' + AvaxCUnStakingRequestPOSTBodyExample: + $ref: '#/components/examples/AvaxCUnStakingRequestPOSTBodyExample' AvaxPStakingRequestPOSTBodyExample: $ref: '#/components/examples/AvaxPStakingRequestPOSTBodyExample' BabyStakingRequestPOSTBodyExample: @@ -23084,6 +24680,10 @@ paths: $ref: '#/components/examples/BldStakingRequestPOSTBodyExample' BldUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/BldUnStakingRequestPOSTBodyExample' + BldClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/BldClaimRewardsRequestPOSTBodyExample' + BldSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/BldSwitchValidatorRequestPOSTBodyExample' BscStakingRequestPOSTBodyExample: $ref: '#/components/examples/BscStakingRequestPOSTBodyExample' BscUnStakingRequestPOSTBodyExample: @@ -23100,10 +24700,18 @@ paths: $ref: '#/components/examples/CoreumStakingRequestPOSTBodyExample' CoreumUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/CoreumUnStakingRequestPOSTBodyExample' + CoreumClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/CoreumClaimRewardsRequestPOSTBodyExample' + CoreumSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/CoreumSwitchValidatorRequestPOSTBodyExample' CronosStakingRequestPOSTBodyExample: $ref: '#/components/examples/CronosStakingRequestPOSTBodyExample' CronosUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/CronosUnStakingRequestPOSTBodyExample' + CronosClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/CronosClaimRewardsRequestPOSTBodyExample' + CronosSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/CronosSwitchValidatorRequestPOSTBodyExample' CsprStakingRequestPOSTBodyExample: $ref: '#/components/examples/CsprStakingRequestPOSTBodyExample' CsprUnStakingRequestPOSTBodyExample: @@ -23118,6 +24726,12 @@ paths: $ref: '#/components/examples/EigenUnStakingRequestPOSTBodyExample' EthStakingRequestPOSTBodyExample: $ref: '#/components/examples/EthStakingRequestPOSTBodyExample' + EthUnStakingRequestPOSTBodyExamplePectra: + $ref: '#/components/examples/EthUnStakingRequestPOSTBodyExamplePectra' + EthUnStakingRequestPOSTBodyExamplePrePectraSingle: + $ref: '#/components/examples/EthUnStakingRequestPOSTBodyExamplePrePectraSingle' + EthUnStakingRequestPOSTBodyExamplePrePectraMultiple: + $ref: '#/components/examples/EthUnStakingRequestPOSTBodyExamplePrePectraMultiple' HashStakingRequestPOSTBodyExample: $ref: '#/components/examples/HashStakingRequestPOSTBodyExample' HashUnStakingRequestPOSTBodyExample: @@ -23126,6 +24740,10 @@ paths: $ref: '#/components/examples/InjectiveStakingRequestPOSTBodyExample' InjectiveUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/InjectiveUnStakingRequestPOSTBodyExample' + InjectiveClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/InjectiveClaimRewardsRequestPOSTBodyExample' + InjectiveSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/InjectiveSwitchValidatorRequestPOSTBodyExample' MaticStakingRequestPOSTBodyExample: $ref: '#/components/examples/MaticStakingRequestPOSTBodyExample' MaticUnstakingRequestPOSTBodyExample: @@ -23138,6 +24756,10 @@ paths: $ref: '#/components/examples/OsmoStakingRequestPOSTBodyExample' OsmoUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/OsmoUnStakingRequestPOSTBodyExample' + OsmoClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/OsmoClaimRewardsRequestPOSTBodyExample' + OsmoSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/OsmoSwitchValidatorRequestPOSTBodyExample' PolStakingRequestPOSTBodyExample: $ref: '#/components/examples/PolStakingRequestPOSTBodyExample' PolUnStakingRequestPOSTBodyExample: @@ -23154,12 +24776,22 @@ paths: $ref: '#/components/examples/SeiStakingRequestPOSTBodyExample' SeiUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/SeiUnStakingRequestPOSTBodyExample' + SeiClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/SeiClaimRewardsRequestPOSTBodyExample' + SeiSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/SeiSwitchValidatorRequestPOSTBodyExample' SolStakingRequestPOSTBodyExample: $ref: '#/components/examples/SolStakingRequestPOSTBodyExample' SolUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/SolUnStakingRequestPOSTBodyExample' SomiStakingRequestPOSTBodyExample: $ref: '#/components/examples/SomiStakingRequestPOSTBodyExample' + SomiUnStakingRequestPOSTBodyExample: + $ref: '#/components/examples/SomiUnStakingRequestPOSTBodyExample' + SomiClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/SomiClaimRewardsRequestPOSTBodyExample' + SomiSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/SomiSwitchValidatorRequestPOSTBodyExample' StxStakingRequestPOSTBodyExample: $ref: '#/components/examples/StxStakingRequestPOSTBodyExample' StxUnStakingRequestPOSTBodyExample: @@ -23180,6 +24812,10 @@ paths: $ref: '#/components/examples/TiaStakingRequestPOSTBodyExample' TiaUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/TiaUnStakingRequestPOSTBodyExample' + TiaClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/TiaClaimRewardsRequestPOSTBodyExample' + TiaSwitchValidatorRequestPOSTBodyExample: + $ref: '#/components/examples/TiaSwitchValidatorRequestPOSTBodyExample' TonStakingRequestPOSTBodyExample: $ref: '#/components/examples/TonStakingRequestPOSTBodyExample' TonUnStakingRequestPOSTBodyExample: @@ -23200,6 +24836,8 @@ paths: $ref: '#/components/examples/WflrStakingRequestPOSTBodyExample' WflrUnStakingRequestPOSTBodyExample: $ref: '#/components/examples/WflrUnStakingRequestPOSTBodyExample' + WflrClaimRewardsRequestPOSTBodyExample: + $ref: '#/components/examples/WflrClaimRewardsRequestPOSTBodyExample' ZetaStakingRequestPOSTBodyExample: $ref: '#/components/examples/ZetaStakingRequestPOSTBodyExample' ZetaUnStakingRequestPOSTBodyExample: @@ -23226,6 +24864,8 @@ paths: $ref: '#/components/examples/AtomUnStakingRequestWithoutDelegationsExample' AvaxCStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/AvaxCStakingRequestWithoutDelegationsExample' + AvaxCUnStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/AvaxCUnStakingRequestWithoutDelegationsExample' AvaxPStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/AvaxPStakingRequestWithoutDelegationsExample' BabyStakingRequestWithoutDelegationsExample: @@ -23274,6 +24914,8 @@ paths: $ref: '#/components/examples/EigenUnStakingRequestWithoutDelegationsExample' EthStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/EthStakingRequestWithoutDelegationsExample' + EthUnStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/EthUnStakingRequestWithoutDelegationsExample' HashStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/HashStakingRequestWithoutDelegationsExample' HashUnStakingRequestWithoutDelegationsExample: @@ -23314,6 +24956,10 @@ paths: $ref: '#/components/examples/SolStakingRequestWithoutDelegationsExample' SolUnStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/SolUnStakingRequestWithoutDelegationsExample' + SomiStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/SomiStakingRequestWithoutDelegationsExample' + SomiUnStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/SomiUnStakingRequestWithoutDelegationsExample' StxStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/StxStakingRequestWithoutDelegationsExample' StxUnStakingRequestWithoutDelegationsExample: @@ -23350,6 +24996,10 @@ paths: $ref: '#/components/examples/WethStakingRequestWithoutDelegationsExample' WethUnStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/WethUnStakingRequestWithoutDelegationsExample' + WflrStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/WflrStakingRequestWithoutDelegationsExample' + WflrUnStakingRequestWithoutDelegationsExample: + $ref: '#/components/examples/WflrUnStakingRequestWithoutDelegationsExample' ZetaStakingRequestWithoutDelegationsExample: $ref: '#/components/examples/ZetaStakingRequestWithoutDelegationsExample' ZetaUnStakingRequestWithoutDelegationsExample: @@ -23769,13 +25419,19 @@ paths: required: true schema: type: string - - $ref: '#/components/parameters/coin1' + - $ref: '#/components/parameters/queryCoins' - name: walletType in: query description: Filter by Wallet Type (e.g. custodial, hot) required: false schema: type: string + enum: + - cold + - custodial + - custodialPaired + - hot + - trading - name: walletIds in: query description: Wallet Ids @@ -23784,6 +25440,12 @@ paths: type: array items: type: string + - name: permissions + in: query + description: Filter by user permissions + required: false + schema: + type: string - name: requestType in: query description: Filter by Staking Request Type @@ -23877,6 +25539,153 @@ paths: errorName: Internal_Server_Error reqId: some-id /api/staking/v1/{coin}/wallets/{walletId}/requests/{stakingRequestId}/transactions/{stakingTransactionId}: + get: + tags: + - Staking Request + summary: Get a staking transaction + description: Retrieve details of a staking transaction for a given wallet and staking request. + operationId: v1.staking.transaction.get + parameters: + - $ref: '#/components/parameters/pathCoin1' + - $ref: '#/components/parameters/pathWalletId1' + - name: stakingRequestId + in: path + description: The ID for the staking request. + required: true + schema: + type: string + - name: stakingTransactionId + in: path + description: The ID for the staking request transaction. + required: true + schema: + type: string + - name: expandBuildParams + in: query + description: Whether to expand transaction build parameters in the response. + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Successful get on a Transaction + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/AsiStakingTransaction' + - $ref: '#/components/schemas/AtomStakingTransaction' + - $ref: '#/components/schemas/AvaxcStakingTransaction' + - $ref: '#/components/schemas/AvaxPStakingTransaction' + - $ref: '#/components/schemas/BabyStakingTransaction' + - $ref: '#/components/schemas/BldStakingTransaction' + - $ref: '#/components/schemas/BscStakingTransaction' + - $ref: '#/components/schemas/CoredaoStakingTransaction' + - $ref: '#/components/schemas/CoreumStakingTransaction' + - $ref: '#/components/schemas/CronosStakingTransaction' + - $ref: '#/components/schemas/CsprStakingTransaction' + - $ref: '#/components/schemas/DotStakingTransaction' + - $ref: '#/components/schemas/EigenStakingTransaction' + - $ref: '#/components/schemas/EthStakingTransaction' + - $ref: '#/components/schemas/HashStakingTransaction' + - $ref: '#/components/schemas/InjectiveStakingTransaction' + - $ref: '#/components/schemas/MaticStakingTransaction' + - $ref: '#/components/schemas/NearStakingTransaction' + - $ref: '#/components/schemas/OsmoStakingTransaction' + - $ref: '#/components/schemas/PolStakingTransaction' + - $ref: '#/components/schemas/PolyxStakingTransaction' + - $ref: '#/components/schemas/RethRocketStakingTransaction' + - $ref: '#/components/schemas/SeiStakingTransaction' + - $ref: '#/components/schemas/SolStakingTransaction' + - $ref: '#/components/schemas/SuiStakingTransaction' + - $ref: '#/components/schemas/SuiWalStakingTransaction' + - $ref: '#/components/schemas/TaoStakingTransaction' + - $ref: '#/components/schemas/TiaStakingTransaction' + - $ref: '#/components/schemas/TrxStakingTransaction' + - $ref: '#/components/schemas/WethStakingTransaction' + - $ref: '#/components/schemas/ZetaStakingTransaction' + - $ref: '#/components/schemas/StakingTransaction' + example: + - stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + createdDate: 2022-01-10T14:32:28.000Z + statusModifiedDate: 2022-01-10T14:32:28.000Z + status: NEW + amount: '3200000000000000000' + transactionType: delegate + buildParams: + recipients: + amount: '3200000000000000000' + address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b' + data: fds0934rnnio390nw + stakingParams: + requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + amount: '3200000000000000000' + validator: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' + actionType: delegate + gasPrice: '1000000000000000' + gasLimit: '3000000000000000' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/StakingError' + example: + error: Bad Request + errorName: BadRequest + reqId: some-id + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Unauthorized + errorName: Unauthorized + reqId: some-id + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Staking license not added for enterprise + errorName: AccessDenied + reqId: some-id + '404': + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Wallet not found + errorName: NotFound + reqId: some-id + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Conflicting clientID + errorName: Conflict + reqId: some-id + '500': + description: Server Error - Transient error please try again + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Database is down + errorName: Internal_Server_Error + reqId: some-id post: tags: - Staking Request @@ -24289,6 +26098,110 @@ paths: error: Database is down errorName: Internal_Server_Error reqId: some-id + /api/staking/v1/enterprises/{enterpriseId}: + get: + tags: + - Staking State Information + summary: Get staking totals at the enterprise level + description: Retrieve staking totals across all coins for a given enterprise, including delegated balances, rewards, and staking metadata. + operationId: v1.staking.enterprise.allCoins + parameters: + - name: enterpriseId + in: path + description: The enterprise ID representing the enterprise a user staked from. + required: true + schema: + type: string + - name: pageSize + in: query + description: Number of results to return per page. Default is 20. + required: false + schema: + type: integer + minimum: 1 + default: 20 + - name: page + in: query + description: Page number of results to return. Default is 1. + required: false + schema: + type: integer + minimum: 1 + default: 1 + - name: staked + in: query + description: Filter results to only include staked assets if true, or unstaked if false. + required: false + schema: + type: boolean + responses: + '200': + description: Successful response containing staking totals for the enterprise across all coins. + content: + application/json: + schema: + $ref: '#/components/schemas/EnterpriseStakingTotals' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/StakingError' + example: + error: Bad Request + errorName: BadRequest + reqId: some-id + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Unauthorized + errorName: Unauthorized + reqId: some-id + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Staking license not added for enterprise + errorName: AccessDenied + reqId: some-id + '404': + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Wallet not found + errorName: NotFound + reqId: some-id + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Conflicting clientID + errorName: Conflict + reqId: some-id + '500': + description: Server Error - Transient error please try again + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Database is down + errorName: Internal_Server_Error + reqId: some-id /api/staking/v1/{coin}/enterprises/{enterpriseId}: get: tags: @@ -24317,6 +26230,67 @@ paths: delegated: '6400000000000000000' rewards: '1000000000000000' apy: '8.2' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/StakingError' + example: + error: Bad Request + errorName: BadRequest + reqId: some-id + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Unauthorized + errorName: Unauthorized + reqId: some-id + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Staking license not added for enterprise + errorName: AccessDenied + reqId: some-id + '404': + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Wallet not found + errorName: NotFound + reqId: some-id + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Conflicting clientID + errorName: Conflict + reqId: some-id + '500': + description: Server Error - Transient error please try again + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Database is down + errorName: Internal_Server_Error + reqId: some-id /api/staking/v1/{coin}/enterprises/{enterpriseId}/tokens: get: tags: @@ -24444,7 +26418,7 @@ paths: description: The time range for the data, either hourly or daily. required: false schema: - type: string + $ref: '#/components/schemas/TimeRange' - name: startDate in: query description: The start date to search from. @@ -24770,6 +26744,8 @@ paths: - title: General - $ref: '#/components/schemas/WalletStakingStateAttributes' examples: + AdaWalletStakingStateAttributesExamples: + $ref: '#/components/examples/AdaWalletStakingStateAttributesExamples' WalletStakingStateAttributesExamples: $ref: '#/components/examples/WalletStakingStateAttributesExamples' DotWalletStakingStateAttributesExamples: @@ -24990,12 +26966,7 @@ paths: description: Returns a list of staking partnered validators. operationId: v1.partneredValidators.list parameters: - - name: coin - in: query - description: The staking asset. - required: false - schema: - type: string + - $ref: '#/components/parameters/coin1' - name: enterpriseId in: query description: The enterprise ID. @@ -25004,22 +26975,17 @@ paths: type: string - name: walletId in: query - description: The wallet ID. - required: false - schema: - type: string - - name: delegationStatus - in: query - description: The delegation status. + description: The wallet ID required: false schema: - type: string + $ref: '#/components/schemas/WalletId' - name: onlyActive in: query description: True only if validators with active delegations are requested required: false schema: type: boolean + default: true - name: defaultValidator in: query description: True only if the default validator is requested @@ -25038,6 +27004,7 @@ paths: required: false schema: type: string + default: STAKE - $ref: '#/components/parameters/queryPage' - $ref: '#/components/parameters/queryPageSize' responses: @@ -25192,6 +27159,20 @@ paths: type: string - $ref: '#/components/parameters/queryCoins' - $ref: '#/components/parameters/queryLabel' + - name: walletType + in: query + description: Filter by Wallet Type (cold, custodial, custodialPaired, hot, trading) + required: false + schema: + type: array + items: + type: string + enum: + - cold + - custodial + - custodialPaired + - hot + - trading - $ref: '#/components/parameters/queryPage' - $ref: '#/components/parameters/queryPageSize' responses: @@ -25251,6 +27232,96 @@ paths: error: Database is down errorName: Internal_Server_Error reqId: some-id + /api/staking/v1/enterprises/{enterpriseId}/coins: + get: + tags: + - Staking State Information + summary: Get list of stake-able coins + description: Returns a paginated list of stake-able coins for the given enterprise with basic attributes. + operationId: v1.enterprise.stakingCoins.list + parameters: + - name: enterpriseId + in: path + description: The enterprise ID. + required: true + schema: + type: string + - $ref: '#/components/parameters/queryPage' + - $ref: '#/components/parameters/queryPageSize' + - name: staked + in: query + description: Filter by whether the coin is currently staked. + required: false + schema: + type: boolean + responses: + '200': + description: Successful response containing staking totals for the enterprise across all coins. + content: + application/json: + schema: + $ref: '#/components/schemas/EnterpriseStakingTotals' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/StakingError' + example: + error: Bad Request + errorName: BadRequest + reqId: some-id + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Unauthorized + errorName: Unauthorized + reqId: some-id + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Staking license not added for enterprise + errorName: AccessDenied + reqId: some-id + '404': + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Wallet not found + errorName: NotFound + reqId: some-id + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Conflicting clientID + errorName: Conflict + reqId: some-id + '500': + description: Server Error - Transient error please try again + content: + application/json: + schema: + $ref: '#/components/schemas/StakingError' + example: + error: Database is down + errorName: Internal_Server_Error + reqId: some-id /api/staking/v1/enterprises/{enterpriseId}/stakeable-coins: get: tags: @@ -26695,6 +28766,50 @@ paths: schema: type: object properties: {} + /api/stablecoin/v1/tokens/{token}/details: + get: + summary: Get cross-chain total supply for a token + description: Returns the aggregated total supply for a token across all supported chains. + operationId: stablecoin.v1.tokens.totalSupply.get + tags: + - Stablecoin + parameters: + - name: token + description: Token symbol or identifier for the stablecoin to get total supply for. + in: path + required: true + schema: + type: string + example: usd1 + minLength: 1 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetTokenDetailsResponse' + '400': + description: Bad Request + content: + application/json: + schema: + type: object + properties: {} + '404': + description: Not Found + content: + application/json: + schema: + type: object + properties: {} + '500': + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: {} /api/v1/user/login: post: summary: Login Request @@ -28547,6 +30662,7 @@ paths: - custodial - custodialPaired - hot + - advanced - trading description: If present, filters transaction requests by the specified wallet types - name: states @@ -30059,8 +32175,8 @@ paths: $ref: '#/components/schemas/PlatformError' /api/v2/organization/{organizationId}/webhook: get: - summary: List webhooks for an organization - description: List all webhooks for the specified organization. + summary: List organization webhooks + description: List all webhooks for a specified organization. operationId: v2.organization.webhook.list tags: - Organization Webhooks @@ -30134,12 +32250,13 @@ paths: schema: $ref: '#/components/schemas/PlatformError' post: - summary: Create a webhook for multiple assets + summary: Create organization webhook description: |- - Create a webhook that will fire for any transfer across the organization. Must be - an organization manager to perform this action. To call this endpoint, you must - have the user_manage scope on a short-lived access token created either in the - web app or programmatically using the [Login](/api/user.login) endpoint. + Create a webhook that sends an HTTP callback from BitGo to a specified URL when + specific conditions occur within an organization. Must be an organization + manager to perform this action. To call this endpoint, you must have the + `user_manage` scope on a short-lived access token created either in the web app + or programmatically using the [Login](/api/user.login) endpoint. operationId: v2.organization.webhook.add tags: - Organization Webhooks @@ -30159,7 +32276,7 @@ paths: schema: oneOf: - type: object - title: AddOrgnizationTransferWebhookBody + title: Transfer properties: allToken: type: boolean @@ -30184,7 +32301,7 @@ paths: - type - url - type: object - title: AddOrganizationTxRequestWebhookBody + title: Transaction Request properties: label: type: string @@ -30218,7 +32335,7 @@ paths: - type - url - type: object - title: AddOrganizationTxRequestTransactionWebhookBody + title: Transaction Request Transaction properties: label: type: string @@ -30253,7 +32370,7 @@ paths: - type - url - type: object - title: AddOrganizationPendingApprovalWebhookBody + title: Pending Approval properties: allToken: type: boolean @@ -30272,7 +32389,7 @@ paths: - type - url - type: object - title: AddOrganizationBankAccountWebhookBody + title: Bank Account properties: label: type: string @@ -30287,7 +32404,7 @@ paths: - type - url - type: object - title: AddOrganizationIdentityStatusWebhookBody + title: Identity Status properties: label: type: string @@ -30326,7 +32443,7 @@ paths: - type - url - type: object - title: AddOrganizationUserKycStateWebhookBody + title: User KYC State properties: kycState: type: array @@ -30349,7 +32466,7 @@ paths: - type - url - type: object - title: AddOrganizationEnterpriseKycStateWebhookBody + title: Enterprise KYC State properties: kycState: type: array @@ -30398,10 +32515,10 @@ paths: $ref: '#/components/schemas/PlatformError' /api/v2/organization/{organizationId}/webhook/{webhookId}: delete: - summary: Delete an organization webhook by id + summary: Delete organization webhook description: |- - Remove a webhook from the organization. This will permanently delete the webhook. - To call this endpoint, you must have the user_manage scope on a short-lived access + Remove a webhook from the organization. This permanently deletes the webhook. + To call this endpoint, you must have the `user_manage` scope on a short-lived access token created either in the web app or programmatically using the [Login](/api/user.login) endpoint. operationId: v2.organization.webhook.delete @@ -30444,8 +32561,8 @@ paths: schema: $ref: '#/components/schemas/PlatformError' get: - summary: Get webhook by id - description: Get an organization webhook by its id. + summary: Get organization webhook + description: Get an organization webhook by its ID. operationId: v2.organization.webhook.get tags: - Organization Webhooks @@ -30489,11 +32606,12 @@ paths: $ref: '#/components/schemas/PlatformError' /api/v2/organization/{organizationId}/webhook/{webhookId}/simulate: post: - summary: Simulate a webhook + summary: Simulate organization webhook description: |- - Simulate a webhook for testing purposes. To call this endpoint, you must have - the user_manage scope on a short-lived access token created either in the web - app or programmatically using the [Login](/api/user.login) endpoint. + Simulate an organization webhook for testing purposes. To call this endpoint, + you must have the `user_manage` scope on a short-lived access token created + either in the web app or programmatically using the [Login](/api/user.login) + endpoint. operationId: v2.organization.webhook.simulate tags: - Organization Webhooks @@ -31659,40 +33777,6 @@ paths: application/json: schema: $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/liability-proofs: - get: - summary: Get liability proofs - description: Get liability proofs for a Go Account. Liability proofs are zero-knowledge proofs (ZKPs) that you can use with BitGo's open-source verification tool to verify that assets held in a specific Go Account are part of the total liabilities published by BitGo. To learn more about the verification tool, see https://github.com/BitGo/proof-of-solvency. - operationId: v2.wallet.proofs.liability.get - tags: - - Liabilities - parameters: - - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/WalletIdString' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/UserVerificationElements' - '400': - description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId1' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' /api/v2/wallet/{walletId}/lightning/invoice: get: summary: Fetch lightning invoices @@ -33393,6 +35477,7 @@ paths: - custodial - custodialPaired - hot + - advanced - trading responses: '200': @@ -33431,27 +35516,6 @@ paths: application/json: schema: $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/solvency-data: - get: - summary: Get proof of solvency data - description: Get proof of solvency data for Go Accounts. This data consists of the list of supported assets (for proof of solvency), the total liabilities for those assets, BitGo's total reserves for those assets, and the ratio of reserves to liabilities for each asset. - operationId: v2.wallet.solvency.data.get - tags: - - Solvency - parameters: [] - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/SolvencyData' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' /api/v2/wallets: get: summary: List wallets @@ -33685,6 +35749,7 @@ paths: - custodial - custodialPaired - hot + - advanced - trading description: Filter by wallet type. - name: deleted @@ -33890,56 +35955,6 @@ paths: application/json: schema: $ref: '#/components/schemas/PlatformError' - /api/v1/admin/events/reprocess: - put: - summary: Reprocess Dead Letter Queue Event - description: Reprocesses a dead letter queue event back to the event queue - operationId: wd.v1.admin.event.reprocess - tags: - - WD - parameters: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - eventType: - type: string - dlqId: - type: number - required: - - eventType - - dlqId - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/AdminReprocessEventResponse' - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - error: - type: string - required: - - error - '500': - description: Internal Server Error - content: - application/json: - schema: - type: object - properties: - error: - type: string - required: - - error components: callbacks: {} examples: @@ -34031,6 +36046,90 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10012000000' + AdaWalletStakingStateAttributesExamples: + summary: ADA Wallet Staking Attributes + value: + disclaimer: + staking: + info: + - In order to get ADA rewards, users must stake and be approved which takes about 20 days. Afterwards, users must wait til the next epoch which is about 5 days to claim your rewards. Afterwards, staked rewards can be claimed after each epoch. + transactionsNeeded: 1 + stakeWarmupPeriodDesc: 15-20 Days + rewardPercentageRate: '3.00' + rewardsCompounding: true + period: + periodLow: '432000' + periodHigh: '432000' + coin: tada + type: WARMUP + minStake: '2000000' + unstaking: + info: + - ADA staked balance is liquid. You can withdraw any time without unstaking. + transactionsNeeded: 0 + unStakeCooldownPeriodDesc: '' + claimRewards: + info: + - Rewards are accrued after each epoch and can be claimed once accrued. + transactionsNeeded: 1 + nextRewards: + rewardCycle: 86400 + permission: + staking: + enabled: false + disabledReason: 'Wallet is already staking. Delegated: 5118.53216 tada.Pending delegation: 0 tada' + allowClientToUseOwnValidator: true + allowClientToUseOwnDRep: true + allowVoteDelegation: true + requireVoteDelegation: false + unstaking: + enabled: false + disabledReason: ADA staked balance is liquid. You can withdraw any time without unstaking. + claimRewards: + enabled: false + disabledReason: Wallet does not have any available rewards to be claimed + wallet: + hasEnoughAdmins: true + numberOfRequiredAdmins: 1 + useValidatorList: false + skipAddressValidation: false + allowPartialUnstake: true + restakingEnabled: false + validatorNotNeededForStake: false + spendable: + staking: + fee: '200000' + max: '0' + min: '0' + multiplier: '1' + netMax: '0' + netMin: '0' + isStakingDurationNeeded: false + minStakeMore: '0' + fields: + - name: dRepId + label: DRep ID + required: false + type: dRepId + coin: tada + useValidatorList: false + readonly: false + isDelegated: false + unstaking: + fee: '200000' + max: '5118532160' + min: '0' + multiplier: '1' + multipleDelegations: false + requiresAmount: true + requiresDelegationId: false + requiresDelegationIds: false + claimRewards: + fee: '200000' + max: '0' + min: '0' + multiplier: '1' + requiresDelegationId: false AsiStakingRequestPOSTBodyExample: summary: Asi Staking Request POST Body Example value: @@ -34076,6 +36175,12 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10012000000' + AtomClaimRewardsRequestPOSTBodyExample: + summary: Example ATOM Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174000 + type: CLAIM_REWARDS + delegationId: atom-delegation-1 AtomStakingRequestPOSTBodyExample: summary: Atom Staking Request POST Body Example value: @@ -34098,6 +36203,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + AtomSwitchValidatorRequestPOSTBodyExample: + summary: Example ATOM Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174100 + type: SWITCH_VALIDATOR + delegationId: atom-delegation-1 + validator: cosmosvaloper1abcxyz AtomUnStakingRequestPOSTBodyExample: summary: Atom UnStaking Request POST Body Example value: @@ -34145,6 +36257,29 @@ components: createdDate: 2025-09-08T14:00:00.000Z amount: '1000000000' subType: STAVAX_STAKE + AvaxCUnStakingRequestPOSTBodyExample: + summary: AVAXC UnStaking Request POST Body Example + value: + clientId: c155adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationId: a0225adbc-66a3-4ccd-9a9d-726a05bca0cf + type: UNSTAKE + amount: '500000000' + AvaxCUnStakingRequestWithoutDelegationsExample: + summary: AVAXC UnStaking Request Example + value: + id: e1234567-89ab-4cde-9012-3456789abcde + clientId: g1h2i3j4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + withdrawalAddress: C-avax1r9y8ehv0yx3lkn2f0j0y5rjkx6s0tk4lpavx9 + walletType: custodial + type: UNSTAKE + coin: avaxc + createdDate: 2025-09-08T14:32:28.000Z + statusModifiedDate: 2025-09-08T14:32:28.000Z + status: NEW + amount: '2000000000' AvaxPDelegationResultsExample: summary: AvaxP Delegation Results Example value: @@ -34374,6 +36509,12 @@ components: gasPrice: '1000000' subType: NATIVE_STAKE operator: beraoper1q2w3e4r5t6y7u8i9o0pqlkmn3j4h5g6f7d8s9 + BldClaimRewardsRequestPOSTBodyExample: + summary: Example BLD Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174001 + type: CLAIM_REWARDS + delegationId: bld-delegation-1 BldStakingRequestPOSTBodyExample: summary: Bld Staking Request POST Body Example value: @@ -34396,6 +36537,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + BldSwitchValidatorRequestPOSTBodyExample: + summary: Example BLD Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174101 + type: SWITCH_VALIDATOR + delegationId: bld-delegation-1 + validator: bldvaloper1abcxyz BldUnStakingRequestPOSTBodyExample: summary: Bld UnStaking Request POST Body Example value: @@ -34562,6 +36710,12 @@ components: totalStaked: '0' amount: '500000000000' gasPrice: '200000000000' + CoreumClaimRewardsRequestPOSTBodyExample: + summary: Example COREUM Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174002 + type: CLAIM_REWARDS + delegationId: coreum-delegation-1 CoreumStakingRequestPOSTBodyExample: summary: Coreum Staking Request POST Body Example value: @@ -34584,6 +36738,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + CoreumSwitchValidatorRequestPOSTBodyExample: + summary: Example COREUM Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174102 + type: SWITCH_VALIDATOR + delegationId: coreum-delegation-1 + validator: coreumvaloper1abcxyz CoreumUnStakingRequestPOSTBodyExample: summary: Coreum UnStaking Request POST Body Example value: @@ -34629,6 +36790,12 @@ components: - 643f146bb13653000765c478a384a656 lockType: LOCK_AFTER_DATE lockDate: '2023-11-13T14:49:48.830522Z' + CronosClaimRewardsRequestPOSTBodyExample: + summary: Example CRONOS Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174003 + type: CLAIM_REWARDS + delegationId: cronos-delegation-1 CronosStakingRequestPOSTBodyExample: summary: Cronos Staking Request POST Body Example value: @@ -34651,6 +36818,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + CronosSwitchValidatorRequestPOSTBodyExample: + summary: Example CRONOS Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174103 + type: SWITCH_VALIDATOR + delegationId: cronos-delegation-1 + validator: cronosvaloper1abcxyz CronosUnStakingRequestPOSTBodyExample: summary: Cronos UnStaking Request POST Body Example value: @@ -35337,98 +37511,135 @@ components: gasLimit: '3000000000000000' amount: '6400000000000000000' gasPrice: '1000000000000000' - EthStakingResultsExample: - summary: Ethereum Staking Request Results Example + EthStakingResultsExample: + summary: Ethereum Staking Request Results Example + value: + page: 1 + totalPages: 1 + totalElements: 1 + requests: + - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr + requestUserId: 6092e75c451052000636831deb797bd1 + enterpriseId: 1032e75c451052000436831deb797af1 + walletId: 2032e75g451052000636831abd797bd3 + walletLabel: My ETH Staking Wallet + walletType: custodial + type: STAKE + coin: eth + createdDate: 2022-01-10T14:32:28.000Z + statusModifiedDate: 2022-01-10T14:32:28.000Z + status: NEW + withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' + delegations: + - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5 + withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' + delegated: '3200000000000000000' + status: PENDING + rewards: '0' + lockedRewards: '0' + pendingUnstake: '3200000000000000000' + pendingStake: '0' + apy: '8.3' + coin: eth + walletId: 2032e75g451052000636831abd797bd3 + unstakingFee: '100000000000000' + unstakingMin: '0' + - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai + delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4 + withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' + delegated: '3200000000000000000' + status: PENDING + rewards: '0' + lockedRewards: '0' + pendingUnstake: '3200000000000000000' + pendingStake: '0' + apy: '8.3' + coin: eth + walletId: 2032e75g451052000636831abd797bd3 + unstakingFee: '1000000000000000' + unstakingMin: '0' + transactions: + - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai + stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + createdDate: 2022-01-10T14:32:28.000Z + statusModifiedDate: 2022-01-10T14:32:28.000Z + status: PENDING + amount: '3200000000000000000' + transactionType: delegate + delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf + buildParams: + recipients: + amount: '3200000000000000000' + address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b' + data: fds0934rnnio390nw + stakingParams: + requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + amount: '3200000000000000000' + validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5 + actionType: delegate + gasPrice: '1000000000000000' + gasLimit: '3000000000000000' + - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op + stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + createdDate: 2022-01-10T14:32:28.000Z + statusModifiedDate: 2022-01-10T14:32:28.000Z + status: PENDING + amount: '3200000000000000000' + transactionType: delegate + delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai + buildParams: + recipients: + amount: '3200000000000000000' + address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b' + data: fds0934rnnio390nw + stakingParams: + requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf + amount: '3200000000000000000' + validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4 + actionType: delegate + gasPrice: '1000000000000000' + gasLimit: '3000000000000000' + amount: '6400000000000000000' + gasPrice: '1000000000000000' + EthUnStakingRequestPOSTBodyExamplePectra: + summary: ETH UnStaking Request POST Body Example (Pectra) value: - page: 1 - totalPages: 1 - totalElements: 1 - requests: - - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf - clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr - requestUserId: 6092e75c451052000636831deb797bd1 - enterpriseId: 1032e75c451052000436831deb797af1 - walletId: 2032e75g451052000636831abd797bd3 - walletLabel: My ETH Staking Wallet - walletType: custodial - type: STAKE - coin: eth - createdDate: 2022-01-10T14:32:28.000Z - statusModifiedDate: 2022-01-10T14:32:28.000Z - status: NEW - withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' - delegations: - - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf - delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5 - withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' - delegated: '3200000000000000000' - status: PENDING - rewards: '0' - lockedRewards: '0' - pendingUnstake: '3200000000000000000' - pendingStake: '0' - apy: '8.3' - coin: eth - walletId: 2032e75g451052000636831abd797bd3 - unstakingFee: '100000000000000' - unstakingMin: '0' - - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai - delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4 - withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c' - delegated: '3200000000000000000' - status: PENDING - rewards: '0' - lockedRewards: '0' - pendingUnstake: '3200000000000000000' - pendingStake: '0' - apy: '8.3' - coin: eth - walletId: 2032e75g451052000636831abd797bd3 - unstakingFee: '1000000000000000' - unstakingMin: '0' - transactions: - - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai - stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf - createdDate: 2022-01-10T14:32:28.000Z - statusModifiedDate: 2022-01-10T14:32:28.000Z - status: PENDING - amount: '3200000000000000000' - transactionType: delegate - delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf - buildParams: - recipients: - amount: '3200000000000000000' - address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b' - data: fds0934rnnio390nw - stakingParams: - requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf - amount: '3200000000000000000' - validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5 - actionType: delegate - gasPrice: '1000000000000000' - gasLimit: '3000000000000000' - - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op - stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf - createdDate: 2022-01-10T14:32:28.000Z - statusModifiedDate: 2022-01-10T14:32:28.000Z - status: PENDING - amount: '3200000000000000000' - transactionType: delegate - delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai - buildParams: - recipients: - amount: '3200000000000000000' - address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b' - data: fds0934rnnio390nw - stakingParams: - requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf - amount: '3200000000000000000' - validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4 - actionType: delegate - gasPrice: '1000000000000000' - gasLimit: '3000000000000000' - amount: '6400000000000000000' - gasPrice: '1000000000000000' + clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationId: c0225adbc-66a3-4ccd-9a9d-726a05bca0cf + type: UNSTAKE + amount: '32000000000000000000' + EthUnStakingRequestPOSTBodyExamplePrePectraMultiple: + summary: ETH UnStaking Request POST Body Example (Pre-Pectra, multiple delegations) + value: + clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationIds: + - c0225adbc-66a3-4ccd-9a9d-726a05bca0cf + - d1337adbc-77b4-5dde-9b1d-826a05bca1df + type: UNSTAKE + EthUnStakingRequestPOSTBodyExamplePrePectraSingle: + summary: ETH UnStaking Request POST Body Example (Pre-Pectra, single delegation) + value: + clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationId: c0225adbc-66a3-4ccd-9a9d-726a05bca0cf + type: UNSTAKE + EthUnStakingRequestWithoutDelegationsExample: + summary: ETH UnStaking Request Example + value: + id: g1234567-89ab-4cde-9012-3456789abcde + clientId: i1j2k3l4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + withdrawalAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e' + walletType: custodial + type: UNSTAKE + coin: eth + createdDate: 2025-09-08T14:32:28.000Z + statusModifiedDate: 2025-09-08T14:32:28.000Z + status: NEW + amount: '32000000000000000000' EvaluationExample: summary: Evaluation description: A successful evaluation response. @@ -35725,6 +37936,12 @@ components: createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312 + InjectiveClaimRewardsRequestPOSTBodyExample: + summary: Example INJ Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174004 + type: CLAIM_REWARDS + delegationId: inj-delegation-1 InjectiveStakingRequestPOSTBodyExample: summary: Injective Staking Request POST Body Example value: @@ -35747,6 +37964,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + InjectiveSwitchValidatorRequestPOSTBodyExample: + summary: Example INJ Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174104 + type: SWITCH_VALIDATOR + delegationId: inj-delegation-1 + validator: injvaloper1abcxyz InjectiveUnStakingRequestPOSTBodyExample: summary: Injective UnStaking Request POST Body Example value: @@ -36441,6 +38665,12 @@ components: minStakeMore: '0' unstaking: multipleDelegations: true + OsmoClaimRewardsRequestPOSTBodyExample: + summary: Example OSMO Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174005 + type: CLAIM_REWARDS + delegationId: osmo-delegation-1 OsmoStakingRequestPOSTBodyExample: summary: Osmo Staking Request POST Body Example value: @@ -36463,6 +38693,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + OsmoSwitchValidatorRequestPOSTBodyExample: + summary: Example OSMO Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174105 + type: SWITCH_VALIDATOR + delegationId: osmo-delegation-1 + validator: osmovaloper1abcxyz OsmoUnStakingRequestPOSTBodyExample: summary: Osmo UnStaking Request POST Body Example value: @@ -36881,6 +39118,12 @@ components: required: ALWAYS allowMultiple: true values: [] + SeiClaimRewardsRequestPOSTBodyExample: + summary: Example SEI Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174006 + type: CLAIM_REWARDS + delegationId: sei-delegation-1 SeiStakingRequestPOSTBodyExample: summary: Sei Staking Request POST Body Example value: @@ -36903,6 +39146,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + SeiSwitchValidatorRequestPOSTBodyExample: + summary: Example SEI Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174106 + type: SWITCH_VALIDATOR + delegationId: sei-delegation-1 + validator: seivaloper1abcxyz SeiUnStakingRequestPOSTBodyExample: summary: Sei UnStaking Request POST Body Example value: @@ -37216,6 +39466,12 @@ components: max: '0' min: '0' multipleDelegations: false + SomiClaimRewardsRequestPOSTBodyExample: + summary: Example SOMI Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174007 + type: CLAIM_REWARDS + delegationId: somi-delegation-1 SomiStakingRequestPOSTBodyExample: summary: Somi Staking Request POST Body Example value: @@ -37223,6 +39479,52 @@ components: amount: '5000000000000000000' type: STAKE validator: '0x1234567890123456789012345678901234567890' + SomiStakingRequestWithoutDelegationsExample: + summary: SOMI Staking Request Example + value: + id: c1234567-89ab-4cde-9012-3456789abcde + clientId: e1f2g3h4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + type: STAKE + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + walletType: hot + withdrawalAddress: somi1q8k8ehv0yx3lkn2f0j0y5rjkx6s0tk4lp12345 + coin: somi + status: NEW + statusModifiedDate: 2025-09-08T14:00:00.000Z + createdDate: 2025-09-08T14:00:00.000Z + amount: '2500000000' + SomiSwitchValidatorRequestPOSTBodyExample: + summary: Example SOMI Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174107 + type: SWITCH_VALIDATOR + delegationId: somi-delegation-1 + validator: somivaloper1abcxyz + SomiUnStakingRequestPOSTBodyExample: + summary: Somi UnStaking Request POST Body Example + value: + clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf + delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf + type: UNSTAKE + amount: '2000000000000000000' + SomiUnStakingRequestWithoutDelegationsExample: + summary: SOMI UnStaking Request Example + value: + id: d1234567-89ab-4cde-9012-3456789abcde + clientId: f1g2h3i4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + withdrawalAddress: somi1r9y8ehv0yx3lkn2f0j0y5rjkx6s0tk4lp67890 + walletType: custodial + type: UNSTAKE + coin: somi + createdDate: 2025-09-08T14:32:28.000Z + statusModifiedDate: 2025-09-08T14:32:28.000Z + status: NEW + amount: '1000000000' StakeableCoinsResultExample: summary: Stakeable Coins Result Example value: @@ -37670,6 +39972,12 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '1012000000' + TiaClaimRewardsRequestPOSTBodyExample: + summary: Example TIA Claim Rewards Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174008 + type: CLAIM_REWARDS + delegationId: tia-delegation-1 TiaStakingRequestPOSTBodyExample: summary: Tia Staking Request POST Body Example value: @@ -37692,6 +40000,13 @@ components: statusModifiedDate: 2022-01-10T14:32:28.000Z status: NEW amount: '10000000000' + TiaSwitchValidatorRequestPOSTBodyExample: + summary: Example TIA Switch Validator Request + value: + clientId: 123e4567-e89b-12d3-a456-426614174108 + type: SWITCH_VALIDATOR + delegationId: tia-delegation-1 + validator: tiavaloper1abcxyz TiaUnStakingRequestPOSTBodyExample: summary: Tia UnStaking Request POST Body Example value: @@ -38104,6 +40419,22 @@ components: subType: WFLR_STAKE validator: '0x1234567890abcdef1234567890abcdef12345678' gasPrice: '50000000000000' + WflrStakingRequestWithoutDelegationsExample: + summary: WFLR Staking Request Example + value: + id: a1234567-89ab-4cde-9012-3456789abcde + clientId: c1d2e3f4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + type: STAKE + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + walletType: hot + withdrawalAddress: '0x5fBDB2315678afecb367f032d93F642f64180aa3' + coin: wflr + status: NEW + statusModifiedDate: 2025-09-08T14:00:00.000Z + createdDate: 2025-09-08T14:00:00.000Z + amount: '5000000000000000000' WflrUnStakingRequestPOSTBodyExample: summary: WFLR UnStaking Request POST Body Example value: @@ -38112,6 +40443,22 @@ components: type: UNSTAKE amount: '1000000000000000000' gasPrice: '50000000000000' + WflrUnStakingRequestWithoutDelegationsExample: + summary: WFLR UnStaking Request Example + value: + id: b1234567-89ab-4cde-9012-3456789abcde + clientId: d1e2f3g4-5678-90ab-cdef-1234567890ab + requestingUserId: 6092e75c451052000636831deb797bd1 + enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec + walletId: 63110fc78b108e00071df2d3c3879dd0 + withdrawalAddress: '0xAb5801a7D398351b8bE11C439e05C5b3259aeC9B' + walletType: custodial + type: UNSTAKE + coin: wflr + createdDate: 2025-09-08T14:32:28.000Z + statusModifiedDate: 2025-09-08T14:32:28.000Z + status: NEW + amount: '3000000000000000000' ZetaStakingRequestPOSTBodyExample: summary: Zeta Staking Request POST Body Example value: @@ -39500,11 +41847,16 @@ components: - pendingChainInitialization - rewardAddress AddDeviceTokenRequest: + required: + - appId + - deviceToken + - platform + - provider type: object properties: deviceToken: - type: string minLength: 1 + type: string provider: type: string enum: @@ -39515,14 +41867,16 @@ components: - ANDROID - IOS appId: - type: string minLength: 1 + type: string + AddDeviceTokenResponse: required: - appId + - bitgoUserId - deviceToken + - message - platform - provider - AddDeviceTokenResponse: type: object properties: deviceToken: @@ -39542,13 +41896,6 @@ components: type: string message: type: string - required: - - appId - - bitgoUserId - - deviceToken - - message - - platform - - provider AddUserToOrganizationEnterpriseResponseC: title: AddUserToOrganizationEnterpriseResponseC type: object @@ -39953,17 +42300,6 @@ components: description: Count of the addresses in the current response required: - coin - AdminReprocessEventResponse: - title: AdminReprocessEventResponse - type: object - properties: - eventQueueId: - type: number - eventType: - type: string - required: - - eventQueueId - - eventType AdvancedListCondition: title: AdvancedListCondition type: object @@ -40642,6 +42978,148 @@ components: - name - decimals - isIssuedByBitgo + AssociatedPersonInput: + type: object + properties: + role: + type: string + enum: + - beneficialOwner + - controlPerson + - platformAdmin + description: Role of the associated person + percentageOwnership: + type: number + minimum: 0 + maximum: 100 + description: Percentage of ownership (only for beneficialOwner) + identityId: + type: string + description: Identity ID of the person + required: + - role + - identityId + title: AssociatedPersonInput + AssociatedPersonResponse: + type: object + properties: + identityId: + type: string + description: The individual identity ID of the associated person + role: + type: string + enum: + - beneficialOwner + - controlPerson + - platformAdmin + description: Role of the associated person + percentageOwnership: + type: number + minimum: 0 + maximum: 100 + description: Percentage of ownership (only applicable to beneficial owners) + nullable: true + status: + type: string + enum: + - missingRequirements + - readyForSubmission + - inReview + - verified + - rejected + description: Verification status of the associated person + individual: + type: object + properties: + nameFirst: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: First name of the individual + nameLast: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: Last name of the individual + birthdate: + $ref: '#/components/schemas/Birthdate' + phoneNumber: + type: object + properties: + countryCode: + type: string + pattern: ^[0-9]+$ + description: Country code of the phone number + phoneNumber: + type: string + pattern: ^[0-9]+$ + description: Phone number (without country code) + required: + - countryCode + - phoneNumber + occupation: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Occupation of the individual + countryOfCitizenship: + description: Country of citizenship (ISO 3166-1 alpha-3) + countryOfResidence: + description: Country of residence (ISO 3166-1 alpha-3) + govIdCountryOfIssuance: + description: Country where government ID was issued (ISO 3166-1 alpha-3) + address: + type: object + properties: + street1: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 1 + street2: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 2 + city: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: City name + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + zip: + type: string + description: ZIP or postal code + country: + description: Country (formatted as ISO 3166-1 alpha-3) + required: + - street1 + - city + - subdivision + - zip + - country + identificationNumber: + type: string + description: National identification number (e.g., SSN, passport number) + politicallyExposedPerson: + type: boolean + description: Whether the individual is a politically exposed person + description: Individual data for the associated person + userId: + type: string + description: User ID of the associated person + missingRequirements: + type: array + items: + $ref: '#/components/schemas/MissingRequirement' + description: List of missing requirements for the associated person + required: + - identityId + - role + - percentageOwnership + - status + - individual + - userId + - missingRequirements + title: AssociatedPersonResponse AtomAddress: title: Atom Address type: object @@ -40653,6 +43131,25 @@ components: required: - rootAddress - memoId + AtomClaimRewardsRequestPOSTBody: + title: Cosmos Hub (ATOM) Claim Rewards Request + type: object + description: Request to claim staking rewards for Cosmos Hub (ATOM). + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. AtomPaymentIntent: title: Atom Payment Intent allOf: @@ -40724,6 +43221,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + AtomSwitchValidatorsRequestPOSTBody: + title: Cosmos Hub (ATOM) Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Cosmos Hub (ATOM). + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. AtomUnStakingRequestPOSTBody: title: ATOM unstake allOf: @@ -40895,6 +43415,18 @@ components: - amount - type - subType + AvaxCUnStakingRequestPOSTBody: + title: AVAXC unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to unstake in base units. + type: string + example: '100000000' + required: + - amount AvaxPAddress: title: AvaxP Address type: object @@ -41163,19 +43695,6 @@ components: type: integer description: the height of the block that provides the base values example: 11228504 - BalancesCodec: - title: BalancesCodec - type: array - items: - type: object - properties: - Asset: - type: string - Amount: - type: string - required: - - Asset - - Amount BankAccountCurrency: title: BankAccountCurrency description: | @@ -41567,6 +44086,440 @@ components: - customers_cubix_api - customers_sftp - lead + BaseDisclaimer: + type: object + description: Base fields common to all disclaimers. + properties: + info: + description: List of disclaimer messages. + type: array + items: + type: string + transactionsNeeded: + description: Number of transactions required. + type: integer + BaseEnterprise: + title: Base Enterprise + type: object + properties: + id: + $ref: '#/components/schemas/EnterpriseIdString' + name: + type: string + example: Small Company + additionalEnterpriseInfo: + $ref: '#/components/schemas/AdditionalEnterpriseInfo' + bitgoOrg: + allOf: + - $ref: '#/components/schemas/BitgoOrg' + description: BitGo Organization related to this entity + kycState: + $ref: '#/components/schemas/KycState' + legalIdentifiers: + $ref: '#/components/schemas/LegalIdentifiers' + type: + type: string + latestSAVersionSigned: + type: number + example: 0 + travelRule: + type: boolean + productLicenses: + type: array + items: + type: string + canAccessBorrowing: + type: boolean + description: whether the enterprise has the licence for BitGo Prime Borrowing + canAccessLending: + type: boolean + description: whether the enterprise has the licence for BitGo Prime Lending + canAccessSettlement: + type: boolean + description: whether the enterprise has the licence to utilize settlement functionality + canAccessTrading: + type: boolean + description: whether the enterprise has the licence to access BitGo Trading + canCreateColdWallet: + type: boolean + description: whether the enterprise has the license to create cold wallets + canCreateHotWallet: + type: boolean + description: whether the enterprise has the license to create hot wallets + canCreateCustodialWallet: + type: boolean + description: whether the enterprise has the license to create custodial wallets + canCreateOffchainWallet: + type: boolean + description: whether the enterprise has the license to create trading accounts + oneTimeFees: + type: array + items: + type: string + upfrontPaymentStatus: + type: string + ethAlwaysUseHop: + type: boolean + description: Always use hop address for ETH transactions + usersViewAllWallets: + type: boolean + description: All users on the enterprise can view all enterprise wallets, even if they are not viewers on the wallet itself + example: true + videoIdWaived: + type: boolean + description: Whether the customer has waived the need for Video ID on low risk withdrawals. + example: false + tradeOnboardingAgreement: + allOf: + - $ref: '#/components/schemas/OnboardingAgreement' + description: Who & when the MPA license was ack'd + stakingServicesAgreement: + $ref: '#/components/schemas/OnboardingAgreement' + custodyServicesAgreement: + $ref: '#/components/schemas/OnboardingAgreement' + stablecoinAgreement: + type: array + items: + type: object + description: Stablecoin agreement schema for enterprise users. + properties: + user: + type: string + description: User who accepted the agreement + date: + oneOf: + - type: string + - type: string + format: date-time + title: ISO Date String + - type: string + format: date + title: Date String + description: Date when the agreement was accepted + ip: + type: string + description: IP address of the user + version: + type: number + description: Version number of the agreement + required: + - user + - date + - version + accountType: + allOf: + - $ref: '#/components/schemas/AccountType' + description: Indicates which type of KYC process the enterprise has to complete + businessModel: + $ref: '#/components/schemas/BusinessModel' + salesforceAccountId: + type: string + description: Opportunity ID from Salesforce + salesforceOpportunityId: + type: string + opportunityName: + type: string + description: Opportunity Name from Salesforce + salesEmail: + type: string + cheetahAccountId: + type: string + description: CheetahAccountID is the unique ID for a BitGo Trust enterprise in Cheetah, which is the accounting system used by Trust. + primaryContact: + type: string + description: The Id of the User who is the primary contact + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + emergencyPhone: + type: string + description: Phone number for emergencies + example: '+11234567890' + pricingPlan: + type: string + description: The pricing plan of the enterprise + approvalsRequired: + type: number + description: How many Enterprise Admins are required for action to fire + example: 1 + mutablePolicyWindow: + type: number + description: Time in seconds after which policies on this Enterprise cannot be updated + example: 172800 + freeze: + $ref: '#/components/schemas/Freeze' + bitgoEthKey: + type: string + description: The public portion of the ethererum key generated for the enterprise fee address + ethFeeAddress: + type: string + description: The eth fee address used to pay for network transaction fees of this enterprise + walletLimit: + type: object + additionalProperties: + type: number + preferredUi: + allOf: + - $ref: '#/components/schemas/AvailableUI' + description: The UI that this enterprise prefers to use + custodialWalletLimit: + nullable: true + type: object + additionalProperties: + type: number + featureFlags: + type: array + items: + type: string + labels: + type: array + items: + type: string + publicLabels: + type: array + items: + type: string + description: Subset of labels that are OK to return back to client in GetEnterpriseResponse + licenses: + type: array + items: + type: string + description: New licences that are not stored as flags. Tax requires Portfolio Professional or Institutional + ellipticId: + type: string + description: Identifier for environment variables for a customer's Elliptic API credentials + ellipticHotWallets: + type: boolean + description: Hot wallet transactions on this enterprise are monitored in Elliptic + vaspId: + type: string + bitgoVaspId: + type: string + coinSpecific: + type: object + additionalProperties: {} + walletCounts: + type: object + description: Number of wallets per coin + properties: + enterpriseWallets: + type: object + additionalProperties: + type: number + required: + - enterpriseWallets + activePricingType: + nullable: true + allOf: + - $ref: '#/components/schemas/FlattenedPricingType' + source: + $ref: '#/components/schemas/AggregatorSourceType' + totalWalletsCount: + type: number + description: The total number of wallets in the enterprise + example: 1 + internal: + $ref: '#/components/schemas/EnterpriseInternal' + distributedCustody: + $ref: '#/components/schemas/DistributedCustody' + migratedToNewPolicyService: + type: boolean + description: Whether the enterprise has been migrated to the new policy service + videoIdUsers: + type: array + items: + type: object + properties: + email: + type: string + description: The email of the user + minLength: 1 + userId: + type: string + description: The user ID + minLength: 1 + inviter: + type: string + description: The inviter of the user + minLength: 1 + state: + allOf: + - $ref: '#/components/schemas/VideoIdUserState' + description: The state of the user + videoCallId: + type: string + description: The user's video call ID + approvalDate: + type: string + description: The date the user was approved + archivedDate: + type: string + description: The date the user was archived + pendingApprovalId: + type: string + description: The ID if the user is pending approval + videoLink: + type: string + description: The user's video link + enterpriseId: + type: string + description: EnterpriseId of enterprise this video users belongs to + enterpriseName: + type: string + description: EnterpriseName of enterprise this video users belongs to + required: + - email + - userId + - inviter + - state + description: IDs of users on the enterprise that are approved for custodial video ID + sourceConfig: + type: array + items: + type: object + properties: + source: + $ref: '#/components/schemas/AggregatorSourceType' + metadata: + type: object + description: 'The following fields: source, showBanner, readyForDistribution, showVideoIdBanner, ftxCreditorId were added for FTX insitutional distribution. Reference: https://bitgoinc.atlassian.net/browse/COPS-2695' + properties: + showBanner: + type: boolean + readyForDistribution: + type: boolean + showVideoIdBanner: + type: boolean + ftxCreditorId: + type: string + ftxHost: + $ref: '#/components/schemas/FtxHostType' + creditorId: + type: string + required: + - source + description: Array to store configs, upon which certain actions are taken, per source + videoIdRequired: + type: boolean + description: Check for video ID Users + contract: + allOf: + - $ref: '#/components/schemas/EnterpriseContract' + description: Contract information + referralCode: + allOf: + - $ref: '#/components/schemas/ReferralCodeString' + description: Referral code + oauthSetting: + allOf: + - $ref: '#/components/schemas/OAuthSetting' + description: oauth setting of the enterprise * + optOutOfPoints: + type: boolean + description: Opt Out of Points System Flag + requestedBitgoOrg: + allOf: + - $ref: '#/components/schemas/BitgoOrg' + description: Requested BitGo Org + requestedProducts: + type: array + items: + type: string + enum: + - BitGo MMI + - BitGo Qualified Custody + - BitGo Qualified Custody & Hot Wallet + - Borrowing + - Borrowing / Lending + - Lending + - NFTs + - Self Custody + - 'Go Network: Off Exchange Settlement' + - Staking + - Trade + - Transactional / Hot Wallet + - Wrapped Asset Services + - Escrow + - Distributed Custody Wallet + - Token Management (HZ) + - Platform Integration (B2B2C) + - BitGo Wealth Management (HZ) + - BitGo Concierge + - Coincover Referral + - 'Go Network: Fiat currency Settlement' + - Fiat Currency Custody + - Excess Insurance + - Setup + - Lightning + - Liquidity Provider + - Alliance Agreement + - BitGo Custody + - BitGo MMI (Inc) + - Coincover Referral (Inc) + - Custom Project + - NFTs (Inc) + - Other (Inc) + - Partial Signature + - Portfolio & Tax + - Professional Services + - Setup (Inc) + - Staking (Inc) + - Platform Integration (B2B2C) (Inc) + description: Requested Products + requestedBitgoProducts: + type: array + items: + type: string + enum: + - Instant Fee Wallets + - Go Account + - Settlement + - Tax + - Trade API + - Margin Trading + - Elliptic + - CryptoCompare + - MetaMask + - Custody + - Borrowing + - Lending + - DeFi + - Cold Self-Custody + - Go Network + - Staking + - Trade + - Hot Self-Custody + - Escrow + - Distributed Custody + - Advanced Wallets + - Stablecoins + description: Requested BitGo Products + isContractedClient: + type: boolean + description: True, if the enterprise has been onboarded by Salesforce + required: + - id + - name + - additionalEnterpriseInfo + - bitgoOrg + - kycState + - legalIdentifiers + - type + - latestSAVersionSigned + - travelRule + - productLicenses + - canAccessBorrowing + - canAccessLending + - canAccessSettlement + - canAccessTrading + - canCreateColdWallet + - canCreateHotWallet + - canCreateCustodialWallet + - canCreateOffchainWallet + - oneTimeFees + - upfrontPaymentStatus + - ethAlwaysUseHop + - usersViewAllWallets + - videoIdWaived BaseGoStakeIntent: title: BaseGoStakeIntent allOf: @@ -41643,6 +44596,19 @@ components: $ref: '#/components/schemas/optionalString' required: - intentType + BasePermissionAttributes: + description: Base attributes for all permission types. + type: object + properties: + enabled: + description: True if the permission is enabled. + type: boolean + disabledReason: + description: Reason why the permission is disabled, if applicable. + type: string + nullable: true + required: + - enabled BaseShare: title: BaseShare type: object @@ -41900,6 +44866,24 @@ components: required: - type - delegationId + Birthdate: + type: object + properties: + month: + type: string + description: birthdate month + day: + type: string + description: birthdate day + year: + type: string + description: birthdate year + required: + - month + - day + - year + title: Birthdate + description: Birthdate Bitcoin: type: string enum: @@ -41948,6 +44932,25 @@ components: description: BitGo MPCv2 public key required: - name + BldClaimRewardsRequestPOSTBody: + title: Agoric (BLD) Claim Rewards Request + type: object + description: Request to claim staking rewards for Agoric (BLD). + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. BldStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -41982,6 +44985,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + BldSwitchValidatorsRequestPOSTBody: + title: Agoric (BLD) Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Agoric (BLD). + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. BldUnStakingRequestPOSTBody: title: BLD unstake allOf: @@ -42495,11 +45521,17 @@ components: - maxPriorityFeePerGas nextContractSequenceId: type: number + coin: + type: string + walletId: + type: string required: - txHex - txInfo - recipients - nextContractSequenceId + - coin + - walletId BulkUpdateResponse: title: BulkUpdateResponse type: object @@ -42542,6 +45574,265 @@ components: description: Individual approval result item required: - results + Business: + type: object + properties: + businessName: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Legal name of the business + incorporationCountryCode: + description: Country of incorporation (ISO 3166-1 alpha-3) + primaryOperationsCountryCode: + description: Primary country of operations (ISO 3166-1 alpha-3) + einTinIdentificationNumber: + type: string + description: EIN/TIN of the business + otherEntityId: + type: string + description: Any additional entity identifier + physicalBusinessAddress: + type: object + properties: + street1: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 1 + street2: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 2 + city: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: City name + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + zip: + type: string + description: ZIP or postal code + country: + description: Country (formatted as ISO 3166-1 alpha-3) + required: + - street1 + - city + - subdivision + - zip + - country + mailingAddress: + type: object + properties: + street1: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 1 + street2: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 2 + city: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: City name + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + zip: + type: string + description: ZIP or postal code + country: + description: Country (formatted as ISO 3166-1 alpha-3) + required: + - street1 + - city + - subdivision + - zip + - country + billingAddress: + type: object + properties: + street1: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 1 + street2: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 2 + city: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: City name + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + zip: + type: string + description: ZIP or postal code + country: + description: Country (formatted as ISO 3166-1 alpha-3) + required: + - street1 + - city + - subdivision + - zip + - country + legalEntityStructure: + type: string + enum: + - llc + - corporationCAndS + - partnershipLimitedAndLLP + - generalPartnership + - trusts + - privateInvestmentOrFoundation + - unincorporatedBusiness + - soleProprietorship + - governmentOwned + - publiclyTraded + - supranationalBodies + - specialPurposeVehicle + - segregatedPortfolioCompany + description: Business entity legal structure used to filter requirements (enum). + formationDate: + type: string + description: Business formation date (YYYY-MM-DD) + dbaName: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: DBA (Doing Business As) name + companyWebsiteAddress: + type: string + format: uri + description: Official company website + primaryBusinessType: + $ref: '#/components/schemas/PrimaryBusinessType' + primaryBusinessTypeInstitutional: + type: boolean + description: Whether the business is institutional + descriptionBusinessActivities: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Short description of the business + billingContact: + type: object + properties: + nameFirst: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: First name + nameLast: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: Last name + emailAddress: + type: string + format: email + description: Email address + phoneNumber: + type: object + properties: + countryCode: + type: string + pattern: ^[0-9]+$ + description: Country code of the phone number + phoneNumber: + type: string + pattern: ^[0-9]+$ + description: Phone number (without country code) + required: + - countryCode + - phoneNumber + required: + - nameFirst + - nameLast + - emailAddress + - phoneNumber + authorizedSigner: + type: object + properties: + nameFirst: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: First name + nameLast: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: Last name + emailAddress: + type: string + format: email + description: Email address + phoneNumber: + type: object + properties: + countryCode: + type: string + pattern: ^[0-9]+$ + description: Country code of the phone number + phoneNumber: + type: string + pattern: ^[0-9]+$ + description: Phone number (without country code) + required: + - countryCode + - phoneNumber + required: + - nameFirst + - nameLast + - emailAddress + - phoneNumber + tradeStrategy: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Trading strategy of the business + activeCoinTokens: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Active cryptocurrencies traded + tradeVolumeUsd: + type: string + description: Estimated trade volume in USD + activeExchanges: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: List of active exchanges + diligenceRetailInstitutional: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Diligence level required (retail or institutional) + customerBaseLocations: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Locations of customer base + sanctionAffiliates: + type: boolean + description: Whether the business has sanctioned affiliates + hasAuditor: + type: boolean + description: Whether the business has an auditor + firmAuditor: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Name of audit firm (if applicable) + hasLegalCounsel: + type: boolean + description: Whether the business has legal counsel + diligenceCounselName: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Name of legal counsel (if applicable) + walletAddress: + type: string + description: Business wallet address + title: Business BusinessModel: title: BusinessModel type: string @@ -42707,6 +45998,15 @@ components: - lastTransferId - pendingChainInitialization - rootAddress + CategoriesResponse: + required: + - categories + type: object + properties: + categories: + type: array + items: + type: string CbitAccountResponseProps: title: CbitAccountResponseProps type: object @@ -42833,6 +46133,51 @@ components: - unlock - bulkUnlock - bulkArchive + ClaimRewardsDisclaimerAttributes: + allOf: + - $ref: '#/components/schemas/BaseDisclaimer' + type: object + description: Disclaimer information for claiming rewards. + ClaimRewardsPermissionAttributes: + allOf: + - $ref: '#/components/schemas/BasePermissionAttributes' + type: object + description: Permission attributes specific to claiming staking rewards. + ClaimRewardsSpendableAttributes: + allOf: + - $ref: '#/components/schemas/BaseSpendableAttributes' + type: object + description: Spendable attributes specific to claiming staking rewards. + properties: + breakdown: + $ref: '#/components/schemas/ClaimRewardsSpendableBreakdown' + requiresDelegationId: + type: boolean + description: True if a delegation ID must be specified when claiming rewards. + rewardCoin: + description: The coin in which rewards are distributed. + type: string + rewardPairs: + type: array + description: Optional list of reward pairs (e.g., multiple tokens being rewarded). + items: + $ref: '#/components/schemas/RewardPairs' + ClaimRewardsSpendableBreakdown: + type: object + description: Breakdown of rewards available for claiming. + properties: + totalRewards: + type: string + description: Total accumulated rewards (claimable + pending). + claimableRewards: + type: string + description: Rewards that are immediately available for claiming. + pendingClaimRewards: + type: string + description: Rewards that are pending and not yet claimable. + claimFee: + type: string + description: Estimated fee required to claim rewards. Clause: type: object description: | @@ -42895,7 +46240,7 @@ components: orderId: type: string format: uuid - description: Unique identifier for the order + description: Unique identifier for the close position order closePositionsRequestId: type: string format: uuid @@ -42927,6 +46272,11 @@ components: type: string format: date-time description: Timestamp when the order was completed + clientOrderId: + type: string + format: uuid + description: Optional client order ID if the close position order is associated with a client order + nullable: true example: orderId: c3d4e5f6-g7h8-9012-cdef-345678901234 closePositionsRequestId: b2c3d4e5-f6g7-8901-bcde-f23456789012 @@ -43571,6 +46921,25 @@ components: gasPrice: type: string description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + CoreumClaimRewardsRequestPOSTBody: + title: Coreum Claim Rewards Request + type: object + description: Request to claim staking rewards for Coreum. + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. CoreumStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -43605,6 +46974,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + CoreumSwitchValidatorsRequestPOSTBody: + title: Coreum Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Coreum. + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. CoreumUnStakingRequestPOSTBody: title: COREUM unstake allOf: @@ -43905,6 +47297,134 @@ components: required: - type - url + CreateDocumentRequest: + type: object + properties: + documentType: + $ref: '#/components/schemas/DocumentType' + subType: + $ref: '#/components/schemas/DocumentSubType' + metadata: + $ref: '#/components/schemas/Metadata' + required: + - documentType + title: CreateDocumentRequest + description: Request body for creating a new document + CreateDocumentResponse: + type: object + properties: + documentId: + type: string + description: Unique identifier for the created document + documentType: + type: string + description: Type of the document + documentTypeLabel: + type: string + description: Human-readable label for the document type + subType: + type: string + description: Subtype of the document + status: + $ref: '#/components/schemas/DocumentStatus' + files: + type: array + items: + $ref: '#/components/schemas/DocumentFileDetail' + description: List of files to be uploaded + required: + - documentId + - documentType + - documentTypeLabel + - status + - files + title: CreateDocumentResponse + description: Response after creating a new document + CreateIdentityBody: + discriminator: + propertyName: type + oneOf: + - type: object + properties: + type: + type: string + enum: + - individual + description: Identity type + userId: + type: string + description: The ID of the user + individual: + $ref: '#/components/schemas/Individual' + requestedProducts: + type: array + items: + type: object + properties: + name: + type: string + description: Name of the permission + bitgoOrg: + type: string + description: The entity granting the permission + required: + - name + - bitgoOrg + description: List of requested bitgo products (can be empty for associated people) + finalizeSubmission: + default: false + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - userId + - requestedProducts + - type: object + properties: + type: + type: string + enum: + - business + description: Identity type + organizationId: + type: string + description: The ID of the organization + enterpriseId: + type: string + description: The ID of the enterprise + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonInput' + description: List of associated people + requestedProducts: + type: array + items: + type: object + properties: + name: + type: string + description: Name of the permission + bitgoOrg: + type: string + description: The entity granting the permission + required: + - name + - bitgoOrg + minItems: 1 + description: List of requested bitgo products (business entities require at least one product) + finalizeSubmission: + default: false + type: boolean + description: Whether identity is ready for final submission and requirements validation + required: + - type + - organizationId + - enterpriseId + - requestedProducts + title: CreateIdentityBody CreateKey: type: object properties: @@ -44236,6 +47756,25 @@ components: type: string required: - secret + CronosClaimRewardsRequestPOSTBody: + title: Cronos Claim Rewards Request + type: object + description: Request to claim staking rewards for Cronos. + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. CronosStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -44270,6 +47809,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + CronosSwitchValidatorsRequestPOSTBody: + title: Cronos Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Cronos. + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. CronosUnStakingRequestPOSTBody: title: CRONOS unstake allOf: @@ -44603,6 +48165,10 @@ components: - ACTIVE - COMPLETE DeleteDeviceTokenResponse: + required: + - bitgoUserId + - deviceToken + - message type: object properties: deviceToken: @@ -44611,10 +48177,6 @@ components: type: string message: type: string - required: - - bitgoUserId - - deviceToken - - message DeleteEnterpriseUser: type: object properties: @@ -44922,6 +48484,214 @@ components: type: string description: BitGo Organization related to this entity. Allowed values are BitGo Inc, BitGo Trust, BitGo New York, BitGo Germany, BitGo Switzerland, Frankfurt DE Trust, BitGo Sister Trust 1, BitGo Korea, BitGo Singapore, null nullable: true + Document: + type: object + properties: + id: + type: string + description: Internal ID for the document association + documentId: + type: string + description: External document service ID + documentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + description: Type of document + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Verification status + required: + - id + - documentId + - documentType + - status + title: Document + DocumentFileDetail: + type: object + properties: + fileId: + type: string + description: Unique identifier for the file + fileView: + type: string + description: View or side of the document file + label: + type: string + description: Human-readable label for the file + required: + type: boolean + description: Whether this file is required for the document + uploadUrl: + type: string + format: uri + description: Presigned URL for file upload + expiresAt: + type: string + format: date-time + description: When the upload URL expires + required: + - fileId + - fileView + - label + - required + - uploadUrl + - expiresAt + title: DocumentFileDetail + description: Detailed file information for document creation response + DocumentFileInfo: + type: object + properties: + id: + type: string + description: Unique identifier for the file + view: + $ref: '#/components/schemas/FileView' + status: + $ref: '#/components/schemas/FileStatus' + fileName: + type: string + description: Original filename of the uploaded file + fileType: + type: string + description: MIME type of the file + fileSize: + type: number + description: Size of the file in bytes + uploadUrl: + type: string + format: uri + description: Presigned URL for file upload + downloadUrl: + type: string + format: uri + description: Presigned URL for file download + uploadUrlExpiresAt: + type: string + format: date-time + description: When the upload URL expires + createdAt: + type: string + format: date-time + description: When the file was created + updatedAt: + type: string + format: date-time + description: When the file was last updated + required: + - id + - status + - createdAt + - updatedAt + title: DocumentFileInfo + description: File information for document retrieval + DocumentStatus: + type: string + enum: + - awaitingUpload + - uploaded + title: DocumentStatus + description: Current status of the document + DocumentSubType: + type: string + enum: + - cct + - cid + - dl + - foid + - hic + - id + - ipp + - keyp + - ltpass + - munid + - myn + - nbi + - nric + - ofw + - rp + - pan + - pid + - pp + - ppc + - pr + - sss + - td + - tribalid + - umid + - vid + - visa + - wp + title: DocumentSubType + description: Subtype of document (used for government ID documents) + DocumentType: + type: string + enum: + - governmentId + - commercialRegister + - articlesOfAssociation + - certificateOfIncorporation + - certificateOfTrust + - certificateOfIncumbency + - certificateOfIncumbencyOrShareRegister + - proofOfPrincipalPlaceOfBusiness + - activeTradeLicense + - resolutionToOpenBitgoUaeAccount + - resolutionToOpenBitgoSingaporeAccount + - proofOfAuthorizedSignatories + - memorandumOfAssociation + - memorandumAndArticlesOfAssociation + - bylawsOrOperatingAgreement + - operatingAgreement + - w8 + - w9 + - evidenceOfLegalStatus + - evidenceOfActiveStatus + - proofOfJfsaLicense + - proofOfGamingLicense + - organizationDocument + - partnershipAgreement + - articlesOfOrganization + - businessLicenseOrRegistration + - evidenceOfGovernmentOrStateOwnership + - secFilingsAsEvidenceOfPublicTradingStatus + - foundingTreatyOrEquivalent + title: DocumentType + description: Type of document being uploaded DomesticWireAccountResponseProps: title: DomesticWireAccountResponseProps type: object @@ -45425,517 +49195,135 @@ components: EigenStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' - type: object - EigenStakingRequest: - title: Eigen - allOf: - - $ref: '#/components/schemas/StakingRequest' - type: object - properties: - gasPrice: - type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - delegations: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/EigenStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/EigenStakingTransaction' - amount: - description: Amount to stake in base units (i.e. Wei for Eigen) - type: string - EigenStakingRequestPOSTBody: - title: EIGEN stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - properties: - gasPrice: - type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - EigenStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - properties: - gasPrice: - description: The gas limit in base units. - type: string - EigenUnStakingRequestPOSTBody: - title: EIGEN unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - gasPrice: - type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - Eip1559Params: - type: object - required: - - maxPriorityFeePerGas - - maxFeePerGas - properties: - maxPriorityFeePerGas: - type: string - description: Maximum priority fee per gas (in wei). - maxFeePerGas: - type: string - description: Maximum fee per gas (in wei). - Email: - type: string - format: email - example: user@example.com - Email1: - title: Email - type: object - properties: - email: - type: string - example: user@email.com - format: email - verified: - type: boolean - example: true - required: - - email - - verified - EmergencyPhone: - type: string - description: Phone number for emergencies - example: '+11234567890' - EnableTokenIntent: - title: EnableTokenIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - enableToken - enableTokens: - type: array - items: - type: object - properties: - name: - type: string - address: - $ref: '#/components/schemas/optionalString' - required: - - name - required: - - intentType - - enableTokens - - $ref: '#/components/schemas/BaseIntent' - EncryptedShare: - title: EncryptedShare - allOf: - - type: object - properties: - type: - $ref: '#/components/schemas/ShareType' - required: - - type - - $ref: '#/components/schemas/BaseShare' - Enterprise: - title: Enterprise - type: object - properties: - id: - $ref: '#/components/schemas/EnterpriseIdString' - name: - type: string - example: Small Company - additionalEnterpriseInfo: - $ref: '#/components/schemas/AdditionalEnterpriseInfo' - bitgoOrg: - allOf: - - $ref: '#/components/schemas/BitgoOrg' - description: BitGo Organization related to this entity - kycState: - $ref: '#/components/schemas/KycState' - legalIdentifiers: - $ref: '#/components/schemas/LegalIdentifiers' - type: - type: string - latestSAVersionSigned: - type: number - example: 0 - travelRule: - type: boolean - productLicenses: - type: array - items: - type: string - canAccessBorrowing: - type: boolean - description: whether the enterprise has the licence for BitGo Prime Borrowing - canAccessLending: - type: boolean - description: whether the enterprise has the licence for BitGo Prime Lending - canAccessSettlement: - type: boolean - description: whether the enterprise has the licence to utilize settlement functionality - canAccessTrading: - type: boolean - description: whether the enterprise has the licence to access BitGo Trading - canCreateColdWallet: - type: boolean - description: whether the enterprise has the license to create cold wallets - canCreateHotWallet: - type: boolean - description: whether the enterprise has the license to create hot wallets - canCreateCustodialWallet: - type: boolean - description: whether the enterprise has the license to create custodial wallets - canCreateOffchainWallet: - type: boolean - description: whether the enterprise has the license to create trading accounts - oneTimeFees: - type: array - items: - type: string - upfrontPaymentStatus: - type: string - ethAlwaysUseHop: - type: boolean - description: Always use hop address for ETH transactions - usersViewAllWallets: - type: boolean - description: All users on the enterprise can view all enterprise wallets, even if they are not viewers on the wallet itself - example: true - videoIdWaived: - type: boolean - description: Whether the customer has waived the need for Video ID on low risk withdrawals. - example: false - tradeOnboardingAgreement: - allOf: - - $ref: '#/components/schemas/OnboardingAgreement' - description: Who & when the MPA license was ack'd - stakingServicesAgreement: - $ref: '#/components/schemas/OnboardingAgreement' - custodyServicesAgreement: - $ref: '#/components/schemas/OnboardingAgreement' - accountType: - allOf: - - $ref: '#/components/schemas/AccountType' - description: Indicates which type of KYC process the enterprise has to complete - businessModel: - $ref: '#/components/schemas/BusinessModel' - salesforceAccountId: - type: string - description: Opportunity ID from Salesforce - salesforceOpportunityId: - type: string - opportunityName: - type: string - description: Opportunity Name from Salesforce - salesEmail: - type: string - cheetahAccountId: - type: string - description: CheetahAccountID is the unique ID for a BitGo Trust enterprise in Cheetah, which is the accounting system used by Trust. - primaryContact: - type: string - description: The Id of the User who is the primary contact - example: 59cd72485007a239fb00282ed480da1f - minLength: 1 - pattern: ^[0-9a-f]{32}$ - organizationId: - $ref: '#/components/schemas/OrganizationIdString' - emergencyPhone: - type: string - description: Phone number for emergencies - example: '+11234567890' - pricingPlan: - type: string - description: The pricing plan of the enterprise - approvalsRequired: - type: number - description: How many Enterprise Admins are required for action to fire - example: 1 - mutablePolicyWindow: - type: number - description: Time in seconds after which policies on this Enterprise cannot be updated - example: 172800 - freeze: - $ref: '#/components/schemas/Freeze' - bitgoEthKey: - type: string - description: The public portion of the ethererum key generated for the enterprise fee address - ethFeeAddress: + type: object + EigenStakingRequest: + title: Eigen + allOf: + - $ref: '#/components/schemas/StakingRequest' + type: object + properties: + gasPrice: type: string - description: The eth fee address used to pay for network transaction fees of this enterprise - walletLimit: - type: object - additionalProperties: - type: number - preferredUi: - allOf: - - $ref: '#/components/schemas/AvailableUI' - description: The UI that this enterprise prefers to use - custodialWalletLimit: - nullable: true - type: object - additionalProperties: - type: number - featureFlags: - type: array - items: - type: string - labels: - type: array - items: - type: string - publicLabels: + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + delegations: type: array + minItems: 1 + maxItems: 500 items: - type: string - description: Subset of labels that are OK to return back to client in GetEnterpriseResponse - licenses: + $ref: '#/components/schemas/EigenStakingDelegation' + transactions: type: array + minItems: 1 + maxItems: 500 items: - type: string - description: New licences that are not stored as flags. Tax requires Portfolio Professional or Institutional - ellipticId: + $ref: '#/components/schemas/EigenStakingTransaction' + amount: + description: Amount to stake in base units (i.e. Wei for Eigen) type: string - description: Identifier for environment variables for a customer's Elliptic API credentials - ellipticHotWallets: - type: boolean - description: Hot wallet transactions on this enterprise are monitored in Elliptic - vaspId: + EigenStakingRequestPOSTBody: + title: EIGEN stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + properties: + gasPrice: type: string - bitgoVaspId: + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + EigenStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + properties: + gasPrice: + description: The gas limit in base units. type: string - coinSpecific: - type: object - additionalProperties: {} - walletCounts: - type: object - description: Number of wallets per coin - properties: - enterpriseWallets: - type: object - additionalProperties: - type: number - required: - - enterpriseWallets - activePricingType: - nullable: true - allOf: - - $ref: '#/components/schemas/FlattenedPricingType' - source: - $ref: '#/components/schemas/AggregatorSourceType' - totalWalletsCount: - type: number - description: The total number of wallets in the enterprise - example: 1 - internal: - $ref: '#/components/schemas/EnterpriseInternal' - distributedCustody: - $ref: '#/components/schemas/DistributedCustody' - migratedToNewPolicyService: + EigenUnStakingRequestPOSTBody: + title: EIGEN unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + gasPrice: + type: string + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + Eip1559Params: + type: object + required: + - maxPriorityFeePerGas + - maxFeePerGas + properties: + maxPriorityFeePerGas: + type: string + description: Maximum priority fee per gas (in wei). + maxFeePerGas: + type: string + description: Maximum fee per gas (in wei). + Email: + type: string + format: email + example: user@example.com + Email1: + title: Email + type: object + properties: + email: + type: string + example: user@email.com + format: email + verified: type: boolean - description: Whether the enterprise has been migrated to the new policy service - videoIdUsers: - type: array - items: - type: object - properties: - email: - type: string - description: The email of the user - minLength: 1 - userId: - type: string - description: The user ID - minLength: 1 - inviter: - type: string - description: The inviter of the user - minLength: 1 - state: - allOf: - - $ref: '#/components/schemas/VideoIdUserState' - description: The state of the user - videoCallId: - type: string - description: The user's video call ID - approvalDate: - type: string - description: The date the user was approved - archivedDate: - type: string - description: The date the user was archived - pendingApprovalId: - type: string - description: The ID if the user is pending approval - videoLink: - type: string - description: The user's video link - enterpriseId: - type: string - description: EnterpriseId of enterprise this video users belongs to - enterpriseName: - type: string - description: EnterpriseName of enterprise this video users belongs to - required: - - email - - userId - - inviter - - state - description: IDs of users on the enterprise that are approved for custodial video ID - sourceConfig: - type: array - items: - type: object - properties: - source: - $ref: '#/components/schemas/AggregatorSourceType' - metadata: + example: true + required: + - email + - verified + EmergencyPhone: + type: string + description: Phone number for emergencies + example: '+11234567890' + EnableTokenIntent: + title: EnableTokenIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - enableToken + enableTokens: + type: array + items: type: object - description: 'The following fields: source, showBanner, readyForDistribution, showVideoIdBanner, ftxCreditorId were added for FTX insitutional distribution. Reference: https://bitgoinc.atlassian.net/browse/COPS-2695' properties: - showBanner: - type: boolean - readyForDistribution: - type: boolean - showVideoIdBanner: - type: boolean - ftxCreditorId: - type: string - ftxHost: - $ref: '#/components/schemas/FtxHostType' - creditorId: + name: type: string - required: - - source - description: Array to store configs, upon which certain actions are taken, per source - videoIdRequired: - type: boolean - description: Check for video ID Users - contract: - allOf: - - $ref: '#/components/schemas/EnterpriseContract' - description: Contract information - referralCode: - allOf: - - $ref: '#/components/schemas/ReferralCodeString' - description: Referral code - oauthSetting: - allOf: - - $ref: '#/components/schemas/OAuthSetting' - description: oauth setting of the enterprise * - optOutOfPoints: - type: boolean - description: Opt Out of Points System Flag - requestedBitgoOrg: - allOf: - - $ref: '#/components/schemas/BitgoOrg' - description: Requested BitGo Org - requestedProducts: - type: array - items: - type: string - enum: - - BitGo MMI - - BitGo Qualified Custody - - BitGo Qualified Custody & Hot Wallet - - Borrowing - - Borrowing / Lending - - Lending - - NFTs - - Self Custody - - 'Go Network: Off Exchange Settlement' - - Staking - - Trade - - Transactional / Hot Wallet - - Wrapped Asset Services - - Escrow - - Distributed Custody Wallet - - Token Management (HZ) - - Platform Integration (B2B2C) - - BitGo Wealth Management (HZ) - - BitGo Concierge - - Coincover Referral - - 'Go Network: Fiat currency Settlement' - - Fiat Currency Custody - - Excess Insurance - - Setup - - Lightning - - Liquidity Provider - - Alliance Agreement - - BitGo Custody - - BitGo MMI (Inc) - - Coincover Referral (Inc) - - Custom Project - - NFTs (Inc) - - Other (Inc) - - Partial Signature - - Portfolio & Tax - - Professional Services - - Setup (Inc) - - Staking (Inc) - - Platform Integration (B2B2C) (Inc) - description: Requested Products - requestedBitgoProducts: - type: array - items: - type: string - enum: - - Instant Fee Wallets - - Go Account - - Settlement - - Tax - - Trade API - - Margin Trading - - Elliptic - - CryptoCompare - - MetaMask - - Custody - - Borrowing - - Lending - - DeFi - - Cold Self-Custody - - Go Network - - Staking - - Trade - - Hot Self-Custody - - Escrow - - Distributed Custody - - Advanced Wallets - description: Requested BitGo Products - required: - - id - - name - - additionalEnterpriseInfo - - bitgoOrg - - kycState - - legalIdentifiers - - type - - latestSAVersionSigned - - travelRule - - productLicenses - - canAccessBorrowing - - canAccessLending - - canAccessSettlement - - canAccessTrading - - canCreateColdWallet - - canCreateHotWallet - - canCreateCustodialWallet - - canCreateOffchainWallet - - oneTimeFees - - upfrontPaymentStatus - - ethAlwaysUseHop - - usersViewAllWallets - - videoIdWaived + address: + $ref: '#/components/schemas/optionalString' + required: + - name + required: + - intentType + - enableTokens + - $ref: '#/components/schemas/BaseIntent' + EncryptedShare: + title: EncryptedShare + allOf: + - type: object + properties: + type: + $ref: '#/components/schemas/ShareType' + required: + - type + - $ref: '#/components/schemas/BaseShare' + Enterprise: + title: Enterprise + allOf: + - type: object + properties: + organization: + allOf: + - $ref: '#/components/schemas/OrganizationIdString' + description: Organization ID reference + - $ref: '#/components/schemas/BaseEnterprise' EnterpriseAccountType: type: string description: Indicates which type of KYC process the enterprise has to complete @@ -46144,6 +49532,23 @@ components: type: array items: $ref: '#/components/schemas/AuditableItem' + EnterpriseStakingTotals: + type: object + properties: + enterpriseStakingInfo: + type: array + description: A paginated list of staking information for the enterprise, grouped by coin. + items: + $ref: '#/components/schemas/StakingEnterprise' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. EnterpriseStub: title: Enterprise Stub type: object @@ -46635,6 +50040,26 @@ components: - fee - newAccountFee - netFee + EstimationPeriodAttributes: + type: object + description: Estimation period details for staking. + properties: + periodLow: + description: Lower bound of the period in seconds or blocks. + type: string + periodHigh: + description: Upper bound of the period in seconds or blocks. + type: string + coin: + description: Coin associated with the period. + type: string + type: + description: Type of period (WARMUP, EXIT, COOLDOWN). + type: string + enum: + - WARMUP + - EXIT + - COOLDOWN EthAccelerationIntent: title: ETH Acceleration Intent allOf: @@ -46875,6 +50300,9 @@ components: - STAKE - ETH_STAKE_PECTRA example: STAKE + delegationId: + description: Optional delegation id to be used for topup, only active delegations are allowed, that do not have a pending stake or pending unstake. + type: string EthStakingTransaction: allOf: - $ref: '#/components/schemas/StakingTransaction' @@ -46912,6 +50340,40 @@ components: properties: {} - $ref: '#/components/schemas/TransferTokenIntent' - $ref: '#/components/schemas/EthBuildOptions' + EthUnStakingRequestPOSTBody: + title: ETH unstake (default) + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to unstake in base units. + type: string + example: '32000000000' + delegationId: + description: Delegation identifier for this unstake. + type: string + format: uuid + required: + - amount + - delegationId + EthUnStakingRequestPOSTBodyPrePectra: + title: ETH unstake (pre-Pectra) + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + delegationIds: + description: One or more delegation IDs for unstake. + type: array + items: + type: string + format: uuid + example: + - uuid-1 + - uuid-2 + required: + - delegationIds Ethereum2Address: title: Ethereum2 Address type: object @@ -47697,8 +51159,6 @@ components: failureReason: type: string description: The reason for failure, if any. - transfer: - $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs' ExpressPayInvoiceRequest: type: object properties: @@ -47762,8 +51222,6 @@ components: description: Fee in millisatoshis failureReason: $ref: '#/components/schemas/LightningPaymentFailureReason' - transfer: - $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs' ExpressPingResponse: type: object properties: @@ -48560,6 +52018,21 @@ components: - backingBankAccountId - backingSENBankAccountId - lastUsedNonce + FileStatus: + type: string + enum: + - awaitingUpload + - uploaded + title: FileStatus + description: Current status of the file upload + FileView: + type: string + enum: + - front + - back + - full + title: FileView + description: View or side of the document file FillNonceIntent: title: FillNonceIntent allOf: @@ -48914,60 +52387,51 @@ components: country: type: string description: ISO 3166-1 Alpha-3 country code - GetAuditLogsRequest: + GetDocumentResponse: type: object properties: - userId: + documentId: type: string - email: + description: Unique identifier for the document + documentType: type: string - username: + description: Type of the document + documentTypeLabel: type: string - eventType: + description: Human-readable label for the document type + subType: type: string - enum: - - NOTIFICATION_SENT - - NOTIFICATION_FAILED - - NOTIFICATION_RETRIED - - NOTIFICATION_DELIVERED - - NOTIFICATION_READ - - NOTIFICATION_CLICKED - - NOTIFICATION_UNSUBSCRIBED - - USER_CREATED - - USER_UPDATED - - USER_DELETED - - ADMIN_RESEND_NOTIFICATION - - ADMIN_UNBLOCK_EMAIL - - ADMIN_PATCH_CATEGORY_SUBSCRIPTION - - ADMIN_GET_AUDIT_LOGS - - ADMIN_POST_CATEGORY_SUBSCRIPTION - - ADMIN_POST_NOTIFICATION_SUBSCRIPTION - - EMAIL_BLOCKED_BOUNCE - - EMAIL_UNSUBSCRIBED_COMPLAINT - startDate: + description: Subtype of the document + status: + $ref: '#/components/schemas/DocumentStatus' + metadata: + type: object + additionalProperties: + nullable: true + description: Optional metadata for the document + files: + type: array + items: + $ref: '#/components/schemas/DocumentFileInfo' + description: List of files associated with the document + createdAt: type: string format: date-time - endDate: + description: When the document was created + updatedAt: type: string format: date-time - page: - type: integer - format: int32 - size: - type: integer - format: int32 - maximum: 100 - sortBy: - type: string - pattern: ^(timestamp|id)$ - sortDirection: - type: string - pattern: ^(ASC|DESC)$ + description: When the document was last updated required: - - page - - size - - sortBy - - sortDirection + - documentId + - documentType + - documentTypeLabel + - status + - files + - createdAt + - updatedAt + title: GetDocumentResponse + description: Response containing document information GetEnterpriseResponse: title: GetEnterpriseResponse allOf: @@ -48990,6 +52454,11 @@ components: required: - name - id + stablecoinAgreementLatestVersion: + type: number + organizationId: + type: string + deprecated: true required: - wallets - tags @@ -49024,6 +52493,25 @@ components: - userId - userEmail - derivedPubkey + GetInternalDocumentsInternalError: + type: object + properties: + code: + type: string + description: Error code + message: + type: string + description: Error message + details: + type: object + additionalProperties: + nullable: true + description: Additional error details + required: + - code + - message + title: GetInternalDocumentsInternalError + description: Generic error response GetInvoicesResponse: title: GetInvoicesResponse type: object @@ -49433,6 +52921,7 @@ components: - custodial - custodialPaired - hot + - advanced - trading description: Wallet type required: @@ -49531,6 +53020,61 @@ components: example: fake_trust_go_account_id required: - trustAccountWalletId + GetTokenDetailsResponse: + title: GetTokenDetailsResponse + type: object + properties: + token: + type: string + description: Token symbol or identifier + example: usd1 + minLength: 1 + totalSupplyAggregated: + type: string + description: Total supply across all chains in the smallest unit + example: '5000000000000000000' + minLength: 1 + supplyByChain: + type: array + items: + type: object + properties: + chain: + type: string + description: Blockchain network identifier + example: eth + minLength: 1 + supply: + type: string + description: Total supply for this chain in the smallest unit (wei, satoshi, etc.) + example: '1000000000000000000' + minLength: 1 + success: + type: boolean + description: Whether the supply fetch was successful + example: true + error: + type: string + description: Error message if supply fetch failed + example: Network timeout + cached: + type: boolean + description: Whether this supply data was retrieved from cache + example: true + required: + - chain + - supply + - success + description: Breakdown of supply by chain + totalReserves: + type: string + description: Total reserves + minLength: 1 + required: + - token + - totalSupplyAggregated + - supplyByChain + - totalReserves GetTransactionRequestsResponse: title: GetTransactionRequestsResponse type: object @@ -50401,6 +53945,81 @@ components: title: uuid - $ref: '#/components/schemas/TradeBaseReq' - $ref: '#/components/schemas/TradeBaseQuoteInbound' + Individual: + type: object + properties: + nameFirst: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: First name of the individual + nameLast: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-]+$ + description: Last name of the individual + birthdate: + $ref: '#/components/schemas/Birthdate' + phoneNumber: + type: object + properties: + countryCode: + type: string + pattern: ^[0-9]+$ + description: Country code of the phone number + phoneNumber: + type: string + pattern: ^[0-9]+$ + description: Phone number (without country code) + required: + - countryCode + - phoneNumber + occupation: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,]+$ + description: Occupation of the individual + countryOfCitizenship: + description: Country of citizenship (ISO 3166-1 alpha-3) + countryOfResidence: + description: Country of residence (ISO 3166-1 alpha-3) + govIdCountryOfIssuance: + description: Country where government ID was issued (ISO 3166-1 alpha-3) + address: + type: object + properties: + street1: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 1 + street2: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: Street address line 2 + city: + type: string + pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$ + description: City name + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + zip: + type: string + description: ZIP or postal code + country: + description: Country (formatted as ISO 3166-1 alpha-3) + required: + - street1 + - city + - subdivision + - zip + - country + identificationNumber: + type: string + description: National identification number (e.g., SSN, passport number) + politicallyExposedPerson: + type: boolean + description: Whether the individual is a politically exposed person + title: Individual InitiateTrustlineParams: type: object properties: @@ -50467,6 +54086,25 @@ components: type: boolean description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. example: false + InjectiveClaimRewardsRequestPOSTBody: + title: Injective Claim Rewards Request + type: object + description: Request to claim staking rewards for Injective. + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. InjectiveStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -50501,6 +54139,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + InjectiveSwitchValidatorsRequestPOSTBody: + title: Injective Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Injective. + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. InjectiveUnStakingRequestPOSTBody: title: INJECTIVE unstake allOf: @@ -52542,31 +56203,6 @@ components: - token_type - grant_type - user - LowerProof: - title: LowerProof - type: object - properties: - Proof: - type: string - VerificationKey: - type: string - MerkleRoot: - type: string - MerkleRootWithAssetSumHash: - type: string - MerklePath: - type: array - items: - type: string - MerklePosition: - type: number - required: - - Proof - - VerificationKey - - MerkleRoot - - MerkleRootWithAssetSumHash - - MerklePath - - MerklePosition MarginNetOpenPosition: type: object required: @@ -52938,6 +56574,12 @@ components: required: - messageRaw - intentType + Metadata: + type: object + additionalProperties: + nullable: true + title: Metadata + description: Optional metadata for the document (max 100KB) MinRequireActionParameter: title: Minimum number of approvals required type: object @@ -52980,6 +56622,38 @@ components: type: boolean description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. example: false + MissingRequirement: + type: object + properties: + id: + type: string + description: Unique identifier for the missing requirement + kind: + type: string + enum: + - businessInformation + - data + - document + - associatedPerson + description: Type of missing requirement + name: + type: string + description: Name of the missing requirement + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Current status of the missing requirement + required: + - id + - kind + - name + - status + title: MissingRequirement MmiSignMessageIntent: title: MMI Sign Message Intent allOf: @@ -53483,6 +57157,13 @@ components: format: uuid example: 585951a5df8380e0e3063e9f description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the `prevId` query parameter. + NextRewardsDisclaimerAttributes: + type: object + description: Information about the next rewards cycle. + properties: + rewardCycle: + description: Time in seconds until the next reward cycle. + type: integer NonNegativeBigAmount: title: NonNegativeBigAmount type: string @@ -53541,17 +57222,20 @@ components: operator: $ref: '#/components/schemas/OperatorType' NotificationSubscriptionListRequest: + required: + - notificationSubscriptions type: object properties: notificationSubscriptions: + maxItems: 100 + minItems: 0 type: array items: $ref: '#/components/schemas/NotificationSubscriptionRequest' - maxItems: 100 - minItems: 0 - required: - - notificationSubscriptions NotificationSubscriptionRequest: + required: + - channel + - isSubscribed type: object properties: notificationName: @@ -53559,14 +57243,11 @@ components: categoryName: type: string channel: - type: string maxLength: 50 minLength: 0 + type: string isSubscribed: type: boolean - required: - - channel - - isSubscribed NtildeProof: title: NtildeProof type: object @@ -54523,6 +58204,25 @@ components: - member - customer example: admin + OsmoClaimRewardsRequestPOSTBody: + title: Osmosis (OSMO) Claim Rewards Request + type: object + description: Request to claim staking rewards for Osmosis (OSMO). + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. OsmoStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -54557,6 +58257,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + OsmoSwitchValidatorsRequestPOSTBody: + title: Osmosis (OSMO) Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Osmosis (OSMO). + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. OsmoUnStakingRequestPOSTBody: title: OSMO unstake allOf: @@ -57743,6 +61466,49 @@ components: - employee - FTX Retail - FTX Institutional + PrimaryBusinessType: + type: string + enum: + - Crypto Services (Exchange, ATM, Borrow/Lend) + - Crypto Solutions (DAO, Staking, CaaS, hot wallet provider, miner/mining pool, coins/tokens (developer, issuer, foundation)) + - Custodian + - Agriculture + - Arts, Media, Entertainment + - Asset Management (i.e. revocable/irrevocable trust, IRA, pension fund) + - Bank + - Broker/Dealer + - Casinos and Gambling Establishments + - Charity/NGO/Non-profit/Foundation/Endowment + - Commodities/Futures Commission Merchant + - Corporate Holding Company + - Education + - Energy companies + - Family Office + - Food, hospitality, and tourism + - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund) + - Import/Export Companies + - Industrial (construction, manufacturing, textiles, chemicals, etc.) + - Insurance Company + - Law Enforcement / Military / Protective Services + - Marijuana-related Business + - Money Services Business (MSB) + - Mutual Funds + - NBFI (Venture Capital Fund, Hedge Fund, Private Equity Fund, Pooled Investment Fund, Index Fund, ETF Issuer, Registered Investment Advisor, Prime Brokerage) + - OTC + - Other + - Payment Platforms + - Personal Holding Company + - Private Equity / Venture Capital + - Private Investment Companies / International Business Corporations + - Professional Service Providers (lawyers, accountants, etc.) + - Real estate brokers, developers, and appraisers + - Retail Lender + - Software or Technology Company + - Traders / Trading (High Frequency, Proprietary, Market Maker) + - Transportation & Shipping + - Weapons Dealers + title: PrimaryBusinessType + description: Primary type of business PrimeTrade: required: - id @@ -58411,29 +62177,80 @@ components: - processing - completed - failed - ResendNotificationRequest: + RequestedProductResponse: type: object properties: - userId: + id: + type: string + description: Unique identifier for the requested permission + name: + type: string + description: Name of the permission + bitgoOrg: + type: string + description: The entity granting the permission + country: + description: The country where the permission is being requested + subdivision: type: string minLength: 1 - email: + maxLength: 3 + description: The subdivision where the permission is being requested + status: + type: string + enum: + - missingLocation + - missingEntityStructure + - missingRequirements + - readyForSubmission + - inReview + - approved + - rejected + description: Status of the requested permission + required: + - id + - name + - bitgoOrg + - status + title: RequestedProductResponse + Requirement: + type: object + properties: + id: type: string - notificationType: + description: Unique identifier for the requirement + kind: type: string enum: - - EMAIL - - SMS - - PUSH - - WEBHOOK - workflowName: + - businessInformation + - data + - document + - associatedPerson + description: Type of requirement + name: type: string - minLength: 1 + description: Name of the requirement + status: + type: string + enum: + - missing + - countExceeded + - submitted + - inReview + - verified + description: Current status of the requirement + minRequired: + type: number + description: Minimum number required (for associated persons) + maxAllowed: + type: number + description: Maximum number allowed (for associated persons) required: - - email - - notificationType - - userId - - workflowName + - id + - kind + - name + - status + title: Requirement ResendShareEmailResponse: type: object properties: @@ -58459,6 +62276,38 @@ components: - walletId - expireTime - userId + Restaking: + type: object + description: Attributes related to restaking positions. + properties: + total: + description: Total amount currently restaked. + type: string + pendingStake: + description: Amount of stake that has been requested but is not yet active. + type: string + pendingUnstake: + description: Amount of stake that is pending to be unstaked. + type: string + operator: + description: The operator identifier for the restaking position. + type: string + type: + description: The type of restaking (e.g., EigenLayer, AVS, etc.). + type: string + avses: + description: Optional list of AVS (Actively Validated Services) identifiers linked to this restaking. + type: array + items: + type: string + apy: + description: Annual percentage yield (APY) for the restaking position. + type: string + format: decimal + commissionPercent: + description: Commission percentage charged by the operator. + type: string + format: decimal RethRocketStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -58513,6 +62362,26 @@ components: gasPrice: type: string description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + RewardPairs: + type: object + properties: + tokenAddress: + description: The optional token address. + type: string + nullable: true + amount: + description: The total amount of the reward pair in base units. + type: string + activeAmount: + description: The currently active amount in base units. + type: string + coin: + description: The optional coin for this reward pair. + type: string + nullable: true + required: + - amount + - activeAmount RoutingNumberString: title: RoutingNumberString type: string @@ -58698,6 +62567,25 @@ components: anyOf: - $ref: '#/components/schemas/WalletValue' - $ref: '#/components/schemas/EnterpriseValue' + SeiClaimRewardsRequestPOSTBody: + title: Sei Claim Rewards Request + type: object + description: Request to claim staking rewards for Sei. + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. SeiStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -58732,6 +62620,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + SeiSwitchValidatorsRequestPOSTBody: + title: Sei Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Sei. + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. SeiUnStakingRequestPOSTBody: title: SEI unstake allOf: @@ -59722,6 +63633,25 @@ components: - amount - $ref: '#/components/schemas/WithdrawIntent' - $ref: '#/components/schemas/SolBuildOptions' + SolClaimRewardsRequestPOSTBody: + title: Solana (SOL) Claim Rewards Request + type: object + description: Request to claim staking rewards for Solana (SOL). + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. SolCloseAssociatedTokenAccountIntent: title: SOL Close Associated Token Account Intent allOf: @@ -60081,23 +64011,25 @@ components: - pendingChainInitialization - minimumFunding - trustedTokens - SolvencyData: - title: SolvencyData + SomiClaimRewardsRequestPOSTBody: + title: Somi Claim Rewards Request type: object - description: 'Solvency data schema consists of: - assets: array of supported asset symbols - liabilities: array of total liabilities for each asset - reserves: array of total reserves for each asset - ratios: ratio of reserves to liabilities for each asset' - properties: - liabilities: - $ref: '#/components/schemas/BalancesCodec' - reserves: - $ref: '#/components/schemas/BalancesCodec' - ratios: - type: array - items: - type: number + description: Request to claim staking rewards for Somi. required: - - liabilities - - reserves - - ratios + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. SomiStakingRequest: title: SOMI allOf: @@ -60129,6 +64061,67 @@ components: allOf: - $ref: '#/components/schemas/StakingRequestPOSTBody' type: object + properties: + amount: + description: Amount to stake in base units (wei for SOMI). + type: string + example: '5000000000000000000' + type: + description: Staking Request type = 'STAKE'. + type: string + example: STAKE + validator: + description: The SOMI validator address to delegate to. + type: string + example: '0x1234567890123456789012345678901234567890' + required: + - amount + - type + - validator + SomiSwitchValidatorsRequestPOSTBody: + title: Somi Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Somi. + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. + SomiUnStakingRequestPOSTBody: + title: SOMI unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + type: + description: Staking Request type = 'UNSTAKE'. + type: string + example: UNSTAKE + delegationId: + description: The delegation ID representing the delegation to unstake. + type: string + amount: + description: Amount to unstake in base units (wei for SOMI). Supports partial unstaking. + type: string + example: '2000000000000000000' + required: + - type + - delegationId + - amount SpendingLimits: type: object additionalProperties: @@ -60330,19 +64323,39 @@ components: description: Indicates whether the delegation can currently be unstaked. type: boolean StakingDisclaimerAttributes: + allOf: + - $ref: '#/components/schemas/BaseDisclaimer' type: object + description: Disclaimer information specific to staking. properties: - info: - description: Disclaimer info + stakeWarmupPeriodDesc: + description: Optional description of the staking warmup period. type: string - transactionsNeeded: - description: The number of transactions needed for a staking request. - type: integer + nullable: true + rewardPercentageRate: + description: Optional reward percentage rate for staking. + type: string + format: decimal + nullable: true + rewardsCompounding: + description: True if rewards are compounded. + type: boolean + period: + $ref: '#/components/schemas/EstimationPeriodAttributes' + minStake: + description: Minimum amount required to stake. + type: string + stakingSubTypes: + description: Optional list of staking sub-types with their own disclaimers. + type: array + items: + $ref: '#/components/schemas/StakingSubTypeDisclaimerAttributes' + nullable: true StakingEnterprise: type: object properties: enterpriseId: - description: The ID of the enterprise where the the staking request was created from. + description: The ID of the enterprise where the staking request was created from. type: string coin: description: The staking asset. @@ -60354,8 +64367,50 @@ components: description: The reward accrual amount in base units. type: string apy: - description: Reward accrual annual percentage rate. Estimated yearly based on the last 7 days. Same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators) + description: Reward accrual annual percentage rate. Estimated yearly based on the last 7 days. Same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators). + type: string + pendingStake: + description: The pending stake amount in base units. + type: string + pendingUnstake: + description: The pending unstake amount in base units. + type: string + pendingClaimRewards: + description: The pending claimable rewards in base units. + type: string + baseUnit: + description: The coin base unit (e.g., wei for ETH). type: string + isToken: + description: True if the staking asset is a token. + type: boolean + isTss: + description: True if the staking wallet uses threshold signatures (TSS). + type: boolean + isMultiSig: + description: True if the staking wallet uses multisig. + type: boolean + l1Chain: + description: The underlying L1 chain if the staking asset is on a different chain (e.g., ETH for L2 assets). + type: string + nullable: true + comingSoon: + description: True if the staking feature for this asset is marked as coming soon. + type: boolean + disclaimer: + $ref: '#/components/schemas/DisclaimerAttributes' + walletCount: + description: The number of wallets with delegations in this enterprise for the given coin. + type: integer + rewardCoin: + description: The coin used for rewards (if different from the staked asset). + type: string + nullable: true + rewardPairs: + description: Reward pairs associated with the staking asset. + type: array + items: + $ref: '#/components/schemas/RewardPairs' StakingError: title: Staking Error type: object @@ -60368,14 +64423,67 @@ components: type: string context: type: object - StakingLicense: + StakingField: + type: object + properties: + name: + description: Machine-readable name of the staking field. + type: string + label: + description: Human-readable label for display. + type: string + required: + description: Whether this field must be provided. + type: boolean + default: true + type: + description: Input type (e.g., text, number, select). + type: string + coin: + description: Optional coin symbol associated with the field. + type: string + useValidatorList: + description: Whether this field should use the validator list as options. + type: boolean + default: false + readonly: + description: If true, the field is not editable. + type: boolean + default: false + value: + description: Optional pre-filled or default value for the field. + type: string + min: + description: Optional minimum value (serialized as string). + type: string + max: + description: Optional maximum value (serialized as string). + type: string + options: + description: Select/dropdown options for the field, if applicable. + type: array + items: + $ref: '#/components/schemas/StakingFieldOption' + StakingFieldOption: + type: object + properties: + label: + description: Human-readable label for the option. + type: string + value: + description: Machine-readable value for the option. + type: string + description: + description: Optional explanation of the option. + type: string + StakingLicenseFee: type: object properties: coin: description: The name of the coin. type: string fee: - description: The corresponding fee for coin in current license. + description: The corresponding fee for the coin in the current license. type: string StakingLicenseResponse: type: object @@ -60388,12 +64496,9 @@ components: description: The default fee for the asset. fees: type: array - minItems: 1 - maxItems: 500 + description: The list of per-coin fees for this license. items: - allOf: - - $ref: '#/components/schemas/StakingLicense' - - type: object + $ref: '#/components/schemas/StakingLicenseFee' StakingPartneredValidator: type: object properties: @@ -60406,6 +64511,9 @@ components: totalStaked: description: The total staked amount in base units. type: string + delegated: + description: The delegated amount in base units. + type: string rewards: description: The reward accrual amount in base units. type: string @@ -60418,6 +64526,9 @@ components: coin: description: The staked coin. type: string + rewardCoin: + description: The coin used for rewards. + type: string avses: description: The validator's actively validated services (AVS) for restaking. type: array @@ -60426,6 +64537,52 @@ components: historicRatePerformance: description: The validator's historical reward rate for the last 30 days. type: string + pendingStake: + description: The amount pending staking. + type: string + pendingUnstake: + description: The amount pending unstaking. + type: string + enterpriseId: + description: The enterprise ID associated with the validator. + type: string + walletId: + description: The wallet ID associated with the validator. + type: string + lastRedelegationTimestamp: + description: The last redelegation timestamp. + type: string + permissionAttributes: + $ref: '#/components/schemas/WalletStakingPermissionAttributes' + spendableAttributes: + $ref: '#/components/schemas/WalletStakingSpendableAttributes' + pendingClaimRewards: + description: Pending claimable rewards in base units. + type: string + activeRewards: + description: Active rewards in base units. + type: string + count: + description: The validator’s delegation count. + type: string + preferred: + description: Whether this validator is marked as preferred. + type: boolean + default: false + restaking: + description: Whether this validator supports restaking. + type: boolean + rewardPairs: + type: array + items: + $ref: '#/components/schemas/RewardPairs' + stakingType: + description: The staking type. + type: string + default: STAKE + endTime: + description: The end time for validator participation (if applicable). + type: string StakingPartneredValidatorsResponse: type: object properties: @@ -60447,14 +64604,27 @@ components: type: integer description: The number of elements per page used for paging purposes. StakingPermissionAttributes: + allOf: + - $ref: '#/components/schemas/BasePermissionAttributes' type: object + description: Permission attributes specific to staking. properties: - enabled: - description: If the wallet has staking request submission permission. - type: string - disabledReason: - description: The reason that staking request submission has been disabled. - type: string + allowClientToUseOwnValidator: + description: True if the client is allowed to stake to their own validator. + type: boolean + default: false + allowClientToUseOwnDRep: + description: ADA-specific. True if the client can use their own DRep for governance. + type: boolean + nullable: true + allowVoteDelegation: + description: ADA-specific. True if the client can delegate votes. + type: boolean + nullable: true + requireVoteDelegation: + description: ADA-specific. True if vote delegation is required. + type: boolean + nullable: true StakingRequest: title: Staking Request type: object @@ -60645,6 +64815,9 @@ components: reward: description: The reward in base units. type: string + coin: + description: The coin associated with the reward. + type: string walletId: description: The wallet ID. type: string @@ -60660,6 +64833,7 @@ components: format: date-time required: - reward + - coin - date StakingRewards: type: object @@ -60692,45 +64866,124 @@ components: isStakingDurationNeeded: description: True, if staking duration in seconds is required. type: boolean + defaultStakingDuration: + description: Optional default staking duration in seconds. + type: string + unlockTimeEpochSeconds: + description: Optional unlock time in epoch seconds. + type: string minStakeMore: - description: The minimum amount required to stake to the same validator. - type: integer - decimal: - description: Optional custom conversion factor, when provided, should use amount ÷ decimal to get converted to derived unit. + description: The minimum amount required to stake more to the same validator. type: string - displayUnit: - description: Optional custom unit (e.g., "TP" for TronPower). When provided, this unit is the derived unit of the amounts in the attributes. + minDuration: + description: Minimum allowed staking duration in seconds. + type: string + maxDuration: + description: Maximum allowed staking duration in seconds. + type: string + durationLabel: + description: Optional label for staking duration (e.g., "Epoch"). + type: string + breakdown: + $ref: '#/components/schemas/StakingSpendableBreakdown' + name: + description: Optional staking type name (UI label). + type: string + type: + description: Optional staking type identifier. type: string fields: description: Additional form fields required for staking (e.g., resource type selection dropdown). type: array items: - type: object - properties: - name: - type: string - label: - type: string - type: - type: string - required: - type: boolean - options: - type: array - items: - type: object - properties: - label: - type: string - value: - type: string - description: - type: string + $ref: '#/components/schemas/StakingField' stakingSubTypes: description: Available staking sub-types with their own attributes. type: array items: $ref: '#/components/schemas/StakingSubTypeSpendableAttributes' + isDelegated: + description: True if this staking is delegated. + type: boolean + restaking: + $ref: '#/components/schemas/Restaking' + stakingSubTypesStyle: + description: Optional style hint for rendering staking sub-types. + type: string + decimal: + description: Optional custom conversion factor, when provided, use amount ÷ decimal to get derived unit. + type: string + displayUnit: + description: Optional custom unit (e.g., "TP" for TronPower). When provided, this unit is the derived unit of the amounts in the attributes. + type: string + StakingSpendableBreakdown: + type: object + description: Breakdown of staking spendable amounts, including balances, fees, and limits. + properties: + balance: + description: Total balance available for staking operations. + type: string + stakingFee: + description: Fee amount required to perform staking operations. + type: string + unstakingFee: + description: Fee amount required to perform unstaking operations. + type: string + pendingStake: + description: Amount of stake that has been requested but is not yet active. + type: string + proxyCost: + description: Proxy fee cost (applies to DOT staking only). + type: string + maxSpendable: + description: Maximum amount that can be spent on staking after accounting for fees and limits. + type: string + minSpendable: + description: Minimum amount required for a valid staking operation. + type: string + StakingSubTypeDisclaimerAttributes: + type: object + description: Disclaimer information for a staking sub-type. + properties: + type: + description: Sub-type identifier. + type: string + name: + description: Sub-type display name. + type: string + info: + description: List of disclaimer messages for the sub-type. + type: array + items: + type: string + transactionsNeeded: + description: Number of transactions required for the sub-type. + type: integer + rewardsCompounding: + description: True if rewards are compounded for this sub-type. + type: boolean + period: + $ref: '#/components/schemas/EstimationPeriodAttributes' + minStake: + description: Minimum staking amount for this sub-type. + type: string + minStakeMore: + description: Optional minimum additional stake required for this sub-type. + type: string + nullable: true + url: + description: Optional URL for more information about this sub-type. + type: string + nullable: true + iconName: + description: Optional icon name for UI representation. + type: string + nullable: true + defaultApy: + description: Optional default APY for this sub-type. + type: string + format: decimal + nullable: true StakingSubTypeSpendableAttributes: type: object properties: @@ -60948,7 +65201,7 @@ components: description: List of reward pairs. type: array items: - type: object + $ref: '#/components/schemas/RewardPairs' stakingType: description: The staking type, e.g., STAKE. type: string @@ -60985,17 +65238,28 @@ components: description: The unique identifier of the staking wallet entity. type: string walletType: - description: The type of wallet the staking request was created from, either cold, custodial, or hot. + description: The type of wallet the staking request was created from. type: string + enum: + - cold + - custodial + - custodialPaired + - hot + - trading label: description: The label of the wallet the staking request was created from. type: string + nullable: true coin: description: The staking asset. type: string parentCoin: description: The parent asset of the staking coin. type: string + nullable: true + assetBalance: + description: The total asset balance in base units. + type: string delegated: description: The delegated staked amount in base units. type: string @@ -61035,9 +65299,13 @@ components: createdDate: description: The date the staking request was created. type: string + format: date-time + nullable: true modifiedDate: description: The last date the staking wallet was modified. type: string + format: date-time + nullable: true properties: description: Additional properties of the staking wallet. type: object @@ -61045,16 +65313,16 @@ components: - enterpriseId - walletId - walletType - - label - coin - delegated - pendingUnstake - pendingStake - rewards + - pendingClaimRewards - lockedRewards + - reserved + - pendingReserved - apy - - createdDate - - modifiedDate StakingWalletsResponse: type: object properties: @@ -61329,6 +65597,25 @@ components: - feeOptions - lockedAmount - $ref: '#/components/schemas/BaseIntent' + SuiClaimRewardsRequestPOSTBody: + title: Sui Claim Rewards Request + type: object + description: Request to claim staking rewards for Sui. + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. SuiConsolidateIntent: title: SUI Consolidate Intent allOf: @@ -61547,6 +65834,53 @@ components: SwiftCodeType: title: SwiftCodeType type: string + SwitchValidatorDisclaimerAttributes: + allOf: + - $ref: '#/components/schemas/BaseDisclaimer' + type: object + description: Disclaimer information for switching validators. + properties: + cooldownPeriod: + description: Cooldown period as a string (e.g., "24h"). + type: string + SwitchValidatorPermissionAttributes: + allOf: + - $ref: '#/components/schemas/BasePermissionAttributes' + type: object + description: Permission attributes specific to switching validators. + SwitchValidatorSpendableAttributes: + allOf: + - $ref: '#/components/schemas/BaseSpendableAttributes' + type: object + properties: + breakdown: + $ref: '#/components/schemas/SwitchValidatorSpendableBreakdown' + requiresDelegationId: + type: boolean + description: True if a delegation ID must be specified when switching validators. + SwitchValidatorSpendableBreakdown: + type: object + properties: + balance: + type: string + description: The wallet balance available for validator switching. + switchFee: + type: string + description: The fee required to switch validators. + switchable: + $ref: '#/components/schemas/SwitchValidatorSwitchableBreakdown' + SwitchValidatorSwitchableBreakdown: + type: object + properties: + stakedBalance: + type: string + description: The total balance currently staked that can be switched. + pendingUnstake: + type: string + description: The amount currently pending unstake, not switchable until complete. + maxSwitchable: + type: string + description: The maximum amount of balance that can be switched to another validator. TWAPOrderParameters: type: object properties: @@ -61730,6 +66064,25 @@ components: required: - pendingChainInitialization - creationFailure + TiaClaimRewardsRequestPOSTBody: + title: Celestia (TIA) Claim Rewards Request + type: object + description: Request to claim staking rewards for Celestia (TIA). + required: + - type + - delegationId + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - CLAIM_REWARDS + description: Type of request. + delegationId: + type: string + description: Identifier of the delegation. TiaStakingDelegation: allOf: - $ref: '#/components/schemas/StakingDelegation' @@ -61764,6 +66117,29 @@ components: allOf: - $ref: '#/components/schemas/StakingTransaction' type: object + TiaSwitchValidatorsRequestPOSTBody: + title: Celestia (TIA) Switch Validators Request + type: object + description: Request to switch staking delegation to a new validator for Celestia (TIA). + required: + - type + - delegationId + - validator + properties: + clientId: + type: string + description: Optional client defined identifier. + type: + type: string + enum: + - SWITCH_VALIDATORS + description: Type of request. + delegationId: + type: string + description: Identifier of the existing delegation to switch from. + validator: + type: string + description: Address of the new validator to delegate to. TiaUnStakingRequestPOSTBody: title: TIA unstake allOf: @@ -62108,26 +66484,6 @@ components: - memoId - lastMemoId - seqno - TopProof: - title: TopProof - type: object - properties: - Proof: - type: string - VerificationKey: - type: string - MerkleRoot: - type: string - MerkleRootWithAssetSumHash: - type: string - AssetSum: - $ref: '#/components/schemas/BalancesCodec' - required: - - Proof - - VerificationKey - - MerkleRoot - - MerkleRootWithAssetSumHash - - AssetSum Touchpoint: type: object description: A Touchpoint. For example the Transfer from a Wallet Touchpoint. @@ -62699,6 +67055,7 @@ components: - custodial - custodialPaired - hot + - advanced - trading description: The type describes who owns the keys to the wallet associated to the TxRequest. version: @@ -63811,6 +68168,7 @@ components: - custodial - custodialPaired - hot + - advanced - trading description: Wallet type replaces: @@ -64770,20 +69128,30 @@ components: allOf: - $ref: '#/components/schemas/BaseSpendableAttributes' type: object + description: Spendable amounts and rules specific to unstaking operations. properties: multipleDelegations: - description: True, if more than one active staking delegation exists for a wallet. + description: True if more than one active staking delegation exists for a wallet. type: boolean - UnblockEmailRequest: - type: object - properties: - email: - type: string - reasonForUnblocking: - type: string - required: - - email - - reasonForUnblocking + breakdown: + $ref: '#/components/schemas/UnstakingSpendableBreakdown' + requiresAmount: + description: Whether specifying an amount is required for the unstaking request. + type: boolean + default: true + requiresDelegationId: + description: Whether a single delegation ID is required for the unstaking request. + type: boolean + default: false + requiresDelegationIds: + description: Whether multiple delegation IDs must be specified for the unstaking request. + type: boolean + default: false + unstakingSubTypes: + type: array + description: Supported unstaking sub-types with their own spendable attributes. + items: + $ref: '#/components/schemas/UnstakingSubTypeSpendableAttributes' Unlock: title: Unlock type: object @@ -64983,23 +69351,121 @@ components: required: - intentType UnstakingDisclaimerAttributes: + allOf: + - $ref: '#/components/schemas/BaseDisclaimer' type: object + description: Disclaimer information specific to unstaking. properties: - info: - description: Disclaimer info + unStakeCooldownPeriodDesc: + description: Optional description of the cooldown period before unstaking. type: string - transactionsNeeded: - description: The number of transactions needed for an unstaking request. - type: integer + nullable: true + period: + $ref: '#/components/schemas/EstimationPeriodAttributes' + unstakingSubTypes: + description: Optional list of unstaking sub-types with their own disclaimers. + type: array + items: + $ref: '#/components/schemas/UnstakingSubTypeDisclaimerAttributes' + nullable: true UnstakingPermissionAttributes: + allOf: + - $ref: '#/components/schemas/BasePermissionAttributes' + type: object + description: Permission attributes specific to unstaking. + UnstakingSpendableBreakdown: type: object + description: Detailed breakdown of spendable amounts and fees for unstaking. properties: - enabled: - description: If the wallet has unstaking request submission permission. + balance: type: string - disabledReason: - description: The reason that unstaking request submission has been disabled. + format: biginteger + description: Current balance available for unstaking. + unstakingFee: + type: string + format: biginteger + description: Fee required to perform an unstaking transaction. + maxSpendable: + type: string + format: biginteger + description: Maximum amount that can be unstaked in a single transaction. + unstakeable: + $ref: '#/components/schemas/UnstakingUnstakeableBreakdown' + UnstakingSubTypeDisclaimerAttributes: + type: object + description: Disclaimer information for a specific unstaking sub-type. + properties: + name: + description: Sub-type name. + type: string + type: + description: Sub-type identifier. + type: string + maxUnstake: + description: Optional maximum unstakeable amount for this sub-type. + type: string + nullable: true + UnstakingSubTypeSpendableAttributes: + type: object + description: Attributes describing unstaking behavior for a specific sub-type of unstaking operation. + properties: + name: + type: string + description: Human-readable name of the unstaking sub-type. + type: type: string + description: Internal identifier for the unstaking sub-type. + fee: + type: string + format: biginteger + description: Fee required to perform an unstaking transaction for this sub-type. + max: + type: string + format: biginteger + description: Maximum amount that can be unstaked for this sub-type. + min: + type: string + format: biginteger + description: Minimum amount that must be unstaked for this sub-type. + netMax: + type: string + format: biginteger + description: Maximum unstakeable amount minus applicable fees. + netMin: + type: string + format: biginteger + description: Minimum unstakeable amount including fees. + requiresAmount: + type: boolean + description: True if the unstaking request requires specifying an amount. + requiresDelegationId: + type: boolean + description: True if a single delegation ID must be specified for unstaking. + requiresDelegationIds: + type: boolean + description: True if multiple delegation IDs must be specified for unstaking. + allowPartialUnstake: + type: boolean + description: True if partial unstaking (less than full delegation) is allowed. + multipleDelegations: + type: boolean + description: True if this sub-type supports wallets with multiple active delegations. + UnstakingUnstakeableBreakdown: + type: object + description: Breakdown of the wallet’s staked funds that can be unstaked. + properties: + stakedBalance: + type: string + format: biginteger + description: Total amount currently staked. + pendingUnstake: + type: string + format: biginteger + description: Amount already requested for unstaking but not yet completed. + maxUnstakeable: + type: string + format: biginteger + description: Maximum amount of staked funds that can be unstaked at this time. UnsupportedTokenRecipientEntryItem: title: UnsupportedTokenRecipientEntryItem type: object @@ -65081,6 +69547,82 @@ components: - h1 - h2 - verifiers + UpdateFileStatusRequest: + type: object + properties: + status: + type: string + enum: + - uploaded + description: File upload status + required: + - status + title: UpdateFileStatusRequest + description: Request body for updating file status + UpdateFileStatusResponse: + type: object + properties: + id: + type: string + description: Unique identifier for the file + view: + $ref: '#/components/schemas/FileView' + uploadUrl: + type: string + format: uri + description: Presigned URL for file upload + status: + $ref: '#/components/schemas/FileStatus' + fileName: + type: string + description: Original filename of the uploaded file + required: + - id + - uploadUrl + - status + title: UpdateFileStatusResponse + description: Response after updating file status + UpdateIdentityBody: + type: object + properties: + finalizeSubmission: + type: boolean + description: Whether identity is ready for final submission and requirements validation + requestedProducts: + type: array + items: + type: object + properties: + name: + type: string + bitgoOrg: + type: string + country: + description: Country (formatted as ISO 3166-1 alpha-3) + subdivision: + type: string + minLength: 1 + maxLength: 3 + description: State, province, or region (formatted as subdivision section of ISO 3166-2, excludes country code) + required: + - name + - bitgoOrg + description: List of products to update + individual: + $ref: '#/components/schemas/Individual' + business: + $ref: '#/components/schemas/Business' + associatedPeople: + type: array + items: + $ref: '#/components/schemas/AssociatedPersonInput' + description: List of associated people to update + documents: + type: array + items: + $ref: '#/components/schemas/Document' + description: List of documents to update + title: UpdateIdentityBody UpdatePinnedWalletsResponse: title: UpdatePinnedWalletsResponse type: object @@ -65406,6 +69948,15 @@ components: - timezone - $ref: '#/components/schemas/UserRequiredFields' UserEntity: + required: + - bitgoUserId + - createdAt + - email + - firstName + - lastName + - status + - updatedAt + - username type: object properties: id: @@ -65441,15 +69992,6 @@ components: type: object additionalProperties: type: boolean - required: - - bitgoUserId - - createdAt - - email - - firstName - - lastName - - status - - updatedAt - - username UserKycState: type: string enum: @@ -65473,6 +70015,14 @@ components: - flagged - flagged_retry_allowed UserNotificationSubscriptionEntity: + required: + - categoryName + - channel + - createdAt + - isSubscribed + - notificationName + - updatedAt + - user type: object properties: id: @@ -65497,14 +70047,6 @@ components: subscribed: type: boolean writeOnly: true - required: - - categoryName - - channel - - createdAt - - isSubscribed - - notificationName - - updatedAt - - user UserRequiredFields: title: UserRequiredFields type: object @@ -65570,52 +70112,14 @@ components: email: $ref: '#/components/schemas/Email' UserSubscriptionsResponse: + required: + - notificationSubscriptions type: object properties: notificationSubscriptions: type: array items: $ref: '#/components/schemas/UserNotificationSubscriptionEntity' - required: - - notificationSubscriptions - UserVerificationElements: - title: UserVerificationElements - type: object - properties: - AccountInfo: - type: object - properties: - UserId: - type: string - Balance: - $ref: '#/components/schemas/BalancesCodec' - required: - - UserId - - Balance - ProofInfo: - type: object - properties: - UserMerklePath: - type: array - items: - type: string - UserMerklePosition: - type: number - BottomProof: - $ref: '#/components/schemas/LowerProof' - MiddleProof: - $ref: '#/components/schemas/LowerProof' - TopProof: - $ref: '#/components/schemas/TopProof' - required: - - UserMerklePath - - UserMerklePosition - - BottomProof - - MiddleProof - - TopProof - required: - - AccountInfo - - ProofInfo UtxoAddress: title: Utxo Address type: object @@ -68230,6 +72734,68 @@ components: - approved - rejected - pending + VerifyDocumentFile: + type: object + properties: + fileId: + type: string + description: Unique identifier for the file + fileView: + type: string + description: View or side of the document file + required: + type: boolean + description: Whether this file is required for the document + status: + type: string + description: Current status of the file + downloadUrl: + type: string + format: uri + description: Presigned URL for file download + required: + - fileId + - fileView + - required + - status + title: VerifyDocumentFile + description: File information after verification + VerifyDocumentRequest: + type: object + properties: {} + title: VerifyDocumentRequest + description: Request body for document verification + VerifyDocumentResponse: + type: object + properties: + documentId: + type: string + description: Unique identifier for the document + documentType: + type: string + description: Type of the document + documentTypeLabel: + type: string + description: Human-readable label for the document type + subType: + type: string + description: Subtype of the document + status: + type: string + description: Current status of the document + files: + type: array + items: + $ref: '#/components/schemas/VerifyDocumentFile' + description: List of files with verification status + required: + - documentId + - documentType + - documentTypeLabel + - status + - files + title: VerifyDocumentResponse + description: Response after verifying document upload status VerifyWebhookNotificationResponse: title: VerifyWebhookNotificationResponse type: object @@ -68296,6 +72862,48 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + WPBitGoProduct: + type: string + enum: + - Instant Fee Wallets + - Go Account + - Settlement + - Tax + - Trade API + - Margin Trading + - Elliptic + - CryptoCompare + - MetaMask + - Custody + - Borrowing + - Lending + - DeFi + - Cold Self-Custody + - Go Network + - Staking + - Trade + - Hot Self-Custody + - Escrow + - Distributed Custody + title: WPBitGoProduct + description: BitGo product types + WPBitgoOrg: + type: string + enum: + - BitGo Trust + - BitGo New York + - BitGo Germany + - BitGo Switzerland + - BitGo Europe ApS + - Frankfurt DE Trust + - BitGo Singapore + - BitGo Korea + - BitGo Mena Fze + - BitGo Custody MENA FZE + - BitGo Sister Trust 1 + - BitGo Inc + title: WPBitgoOrg + description: BitGo organization types Wallet: title: Wallet type: object @@ -69014,6 +73622,7 @@ components: enum: - isStaking - lightning + - ambossLightning - musigKp - trackingInscriptions - rbf @@ -69024,6 +73633,7 @@ components: - suiOfcStaking - enableWalletConnect - enableSolCustomTx + - enableAptCustomTx WalletId: type: string example: 59cd72485007a239fb00282ed480da1f @@ -69469,19 +74079,33 @@ components: example: spend,view WalletPermissionAttributes: type: object + description: Permission attributes specific to the wallet. properties: hasEnoughAdmins: description: True, if the wallet has enough admins to create a staking request. type: boolean - numberOfRequiredAdmin: + numberOfRequiredAdmins: description: The number of admins required to create a hot staking request. type: integer useValidatorList: - description: Boolean flag to control wether to show dropdown list of validator or not + description: Boolean flag to control whether to show dropdown list of validators or not. type: boolean skipAddressValidation: - description: Boolean flag to control wether perform validator address validation or not + description: Boolean flag to control whether to perform validator address validation or not. + type: boolean + allowPartialUnstake: + description: True if the wallet allows partial unstaking. + type: boolean + restakingEnabled: + description: True if restaking is enabled for the wallet. type: boolean + validatorNotNeededForStake: + description: True if a validator is not required when staking. + type: boolean + validatorCoin: + description: Optional coin used for validator-specific staking. + type: string + nullable: true WalletRecoveryIntent: title: Wallet Recovery Intent allOf: @@ -69712,29 +74336,45 @@ components: - walletSharesCount WalletStakingDisclaimerAttributes: type: object + description: Spendable disclaimer attributes for a staking wallet. properties: - stakingDisclaimerAttributes: + staking: $ref: '#/components/schemas/StakingDisclaimerAttributes' - unstakingDisclaimerAttributes: + unstaking: $ref: '#/components/schemas/UnstakingDisclaimerAttributes' + claimRewards: + $ref: '#/components/schemas/ClaimRewardsDisclaimerAttributes' + nextRewards: + $ref: '#/components/schemas/NextRewardsDisclaimerAttributes' + switchValidator: + $ref: '#/components/schemas/SwitchValidatorDisclaimerAttributes' WalletStakingPermissionAttributes: description: Permission attributes for the staking wallet. type: object properties: - walletPermissionAttributes: - $ref: '#/components/schemas/WalletPermissionAttributes' - stakingPermissionAttributes: + staking: $ref: '#/components/schemas/StakingPermissionAttributes' - unstakingPermissionAttributes: + unstaking: $ref: '#/components/schemas/UnstakingPermissionAttributes' + claimRewards: + $ref: '#/components/schemas/ClaimRewardsPermissionAttributes' + switchValidator: + $ref: '#/components/schemas/SwitchValidatorPermissionAttributes' + wallet: + $ref: '#/components/schemas/WalletPermissionAttributes' WalletStakingSpendableAttributes: - description: Spendable attributes for the staking wallet. + title: SpendableAttributes + description: Spendable attributes available for a wallet’s staking operations. type: object properties: - stakingSpendableAttributes: + staking: $ref: '#/components/schemas/StakingSpendableAttributes' - unstakingSpendableAttributes: + unstaking: $ref: '#/components/schemas/UnStakingSpendableAttributes' + claimRewards: + $ref: '#/components/schemas/ClaimRewardsSpendableAttributes' + switchValidator: + $ref: '#/components/schemas/SwitchValidatorSpendableAttributes' WalletStakingStateAttributes: type: object properties: @@ -69790,6 +74430,7 @@ components: - custodial - custodialPaired - hot + - advanced - trading WalletTypeCondition: title: Wallet type @@ -69921,6 +74562,7 @@ components: - hot - trading - distributedCustody + - advanced WalletUnspentsResponse: title: WalletUnspentsResponse type: object @@ -70822,6 +75464,7 @@ components: - custodial - custodialPaired - hot + - advanced - trading description: Type of wallet example: trading @@ -71344,6 +75987,7 @@ x-tagGroups: - Address - Approval Requests - Audit log + - BitGo Products - Counterparties - Client Activation - Client Allocations & Deallocations @@ -71356,6 +76000,8 @@ x-tagGroups: - Federation - Fiat - Key + - Know Your Business (KYB) + - Know Your Customer (KYC) - Liabilities - Lightning - Margin @@ -71381,7 +76027,6 @@ x-tagGroups: - User Management - Reports - Send label - - Solvency - Stablecoin - Staking Request - Staking State Information @@ -71394,6 +76039,7 @@ x-tagGroups: - Transaction request - Transfer - User + - User Management Notification - Roles & Permissions - Wallet - Wallet Policy