Tokenet API
    Tokenet API
    • Tokenet API
    • Introduction
    • Signing a Request
    • Rate Limiting
    • Realtime Event Streams (SSE)
    • Orders
      • List supported custodians
        GET
      • List active orders
        GET
      • Create order
        POST
      • Get order
        GET
      • Update order
        PUT
      • Cancel order
        POST
      • List available assets
        GET
      • List available custodians
        GET
      • Calculate prices
        POST
      • Export active orders CSV
        GET
    • Mark To Market
      • List mark-to-market requests
        GET
      • Create mark-to-market request
        POST
      • Get mark-to-market request
        GET
      • Accept mark-to-market request
        POST
      • Reject mark-to-market request
        POST
      • Retry mark-to-market request
        POST
      • Get mark-to-market request transfer preview
        GET
      • Export mark-to-market requests CSV
        GET
      • Preview mark-to-market request modal
        POST
      • Preview mark-to-market transfer
        POST
    • Order Requests
      • Create order request
        POST
      • Update order request
        PATCH
    • Notifications
      • List organization notifications
      • Mark notification as read
    • Positions
      • Accept position rerate
      • Reject position rerate
      • List positions
      • Get position by order public ID
      • Get position
      • Create position return
      • Complete return asset transfer
      • Release return collateral
      • Create position recall
      • Create position rerate
      • Get asset portfolio dashboard stats
      • Export positions CSV
      • List pending positions
      • List returning positions
      • Preview position return transfer
    • Transfers
      • List transfers
      • Get transfer
    • Reports
      • List activity report
      • Export activity report CSV
      • List collateral report
      • Export collateral report CSV
      • Get counterparty exposure report
      • Export counterparty exposure report CSV
      • Get fee charge and accrual report
      • Export fee charge and accrual report CSV
      • Export transfers report CSV
      • List transfers report
    • Chats
      • Create chat group
      • Get chat group details
      • Create mark review message
      • Accept chat action
      • Reject chat action
      • List chat participants
      • List chat threads
      • List chat messages
      • Create chat message
      • Mark chat thread read
      • Open direct chat thread
      • List chat users
    • Schemas
      • AcceptInvitationBody
      • AccountResource
      • ActivityReportEmployeeResource
      • ActivityReportOrganizationResource
      • ActivityReportPositionResource
      • ActivityReportResource
      • AddOrganizationAccountBody
      • AddOrganizationAccountResource
      • AnchorageAPIKeyResponseBody
      • AnchorageBalanceItem
      • AnchorageBalanceResponseBody
      • AnchorageBalanceWallet
      • AnchorageCredentialsField
      • AnchorageDepositAddress
      • AnchoragePage
      • AnchoragePublicKeyResponseBody
      • AnchorageVault
      • AnchorageVaultAccount
      • AnchorageVaultWallet
      • AnchorageVaultWalletsResponseBody
      • AnchorageVaultsResponseBody
      • AnchorageWalletAsset
      • AnchorageWalletBalance
      • ApiCredentialResponseBody
      • ApiCredentialWithKeyResponseBody
      • AssetPortfolioDashboardStatsResource
      • AuditLogEntryResponseBody
      • AvailableAssetResource
      • AvailableCustodianResource
      • BitGoReadinessResponseBody
      • BitGoSetupStatusResponseBody
      • BitGoWallet
      • BitGoWalletAssetBalance
      • BitGoWalletRefreshResponseBody
      • BitGoWalletTransfer
      • BitGoWalletTransfersResponseBody
      • BitGoWalletWebhookIngestionResponseBody
      • BitGoWalletsResponseBody
      • BitGoWebhookVerificationResponseBody
      • CalculatePrices
      • CalculatePricesRequest
      • CalculatePricesResponseBody
      • CancelOrderResource
      • CancelOrderResponseBody
      • ChangePasswordBody
      • ChangePasswordResponseBody
      • ChatGroupDetailsResource
      • ChatMessageActionResource
      • ChatMessageResource
      • ChatParticipantOptionResource
      • ChatParticipantOrganizationResource
      • ChatParticipantResource
      • ChatTabCountResource
      • ChatThreadLastMessageResource
      • ChatThreadResource
      • ClientFeatureFlagStateResource
      • ClientRuleResource
      • CollateralReportRowResource
      • ConfigureAnchorageKeysBody
      • ConfigureAnchorageKeysResource
      • ConfigureAnchorageResponseBody
      • ConfigureAnchorageVaultIDBody
      • ConfigureAnchorageVaultIDResource
      • ConfigureBitGoAccessTokenBody
      • ConfigureBitGoAccessTokenResource
      • ConfigureBitGoEnterpriseBody
      • ConfigureBitGoEnterpriseResource
      • ConfigureBitGoHotWalletSignerKeychain
      • ConfigureBitGoHotWalletSignerMaterialBody
      • ConfigureBitGoHotWalletSignerMaterialResource
      • ConfigureBitGoResponseBody
      • ConfigureProviderBitGoAccessTokenBody
      • ConfigureProviderBitGoAccessTokenResource
      • ConfigureProviderBitGoEnterpriseBody
      • ConfigureProviderBitGoEnterpriseResource
      • CounterpartyExposureReportRowResource
      • CreateAPICredentialBody
      • CreateAccountResponseBody
      • CreateChatGroupBody
      • CreateChatGroupResponseBody
      • CreateChatMessageBody
      • CreateChatMessageResponseBody
      • CreateM2MRequestBody
      • CreateM2MResponseBody
      • CreateMarkChatThreadBody
      • CreateMarkChatThreadResponseBody
      • CreateOrderBody
      • CreateOrderRequest
      • CreateOrderRequestBody
      • CreateOrderRequestResponseBody
      • CreateOrderResource
      • CreateOrderResponseBody
      • CreateOrganizationBody
      • CreateOrganizationResource
      • CreateOrganizationResponseBody
      • CreatePositionRerateBody
      • CreatePositionReturnBody
      • EmailNotificationCategoryResource
      • EmailNotificationEventResource
      • EmailNotificationSettingsResource
      • ErrorDetail
      • ExecuteTransferBody
      • ExecuteTransferResponseBody
      • FeatureFlagResource
      • FeatureFlagRevisionResource
      • FeeChargeAndAccrualReportRowResource
      • FieldMask
      • GetAccountResponseBody
      • GetAdminFeatureFlagsResponseBody
      • GetAssetPortfolioDashboardStatsResponseBody
      • GetChatGroupDetailsResponseBody
      • GetCounterpartyExposureReportResponseBody
      • GetFeatureFlagHistoryResponseBody
      • GetFeatureFlagsResponseBody
      • GetFeeChargeAndAccrualReportResponseBody
      • GetM2MRequestBody
      • GetOrderResponseBody
      • GetOrganizationResponseBody
      • GetPositionResponseBody
      • GetTransferResponseBody
      • GetUserSettingsResponseBody
      • InvitationResponseBody
      • InviteAccount
      • InviteAccountBody
      • ListAPICredentialLogsResponseBody
      • ListAPICredentialsResponseBody
      • ListAccountsResponseBody
      • ListActivityReports
      • ListAvailableAssetsResponseBody
      • ListAvailableCustodiansResponseBody
      • ListChatMessagesResponseBody
      • ListChatParticipantsResponseBody
      • ListChatThreadsResponseBody
      • ListClientRulesResponseBody
      • ListCollateralReport
      • ListM2MRequestsBody
      • ListNotificationsResponseBody
      • ListOrdersResponseBody
      • ListOrganizationsResponseBody
      • ListOrganizationsWithAnchorageCredentialsResponseBody
      • ListPendingPositionsResponseBody
      • ListPositions
      • ListPositionsResponseBody
      • ListReturningPositionsResponseBody
      • ListTransfersReportResponseBody
      • ListTransfersResponseBody
      • LoginBody
      • LoginResponseBody
      • M2MColumnPreferencesResource
      • M2MPositionPreviewResource
      • M2MPositionPreviewResponseBody
      • M2MPreviewPartyResource
      • M2MRequestActionBody
      • M2MRequestResource
      • M2MTransferPreviewResource
      • M2MTransferPreviewResponseBody
      • MarkNotificationReadResponseBody
      • MembershipResource
      • NotificationResource
      • OpenDirectChatThreadBody
      • OpenDirectChatThreadResponseBody
      • OrderResource
      • OrganizationAnchorageCredentialsResource
      • OrganizationResource
      • PendingPositionActionGuidanceResource
      • PendingPositionResource
      • PermissionResource
      • PortfolioLastDealResource
      • PositionAccrualSegmentResource
      • PositionAccrualSummaryResource
      • PositionActionAvailabilityResource
      • PositionRecallResource
      • PositionRecallResponseBody
      • PositionRerateResource
      • PositionRerateResponseBody
      • PositionResource
      • PositionReturnResource
      • PositionReturnResponseBody
      • PositionReturnTransferLegResource
      • PositionReturnTransferPartyResource
      • PositionReturnTransferPreviewResource
      • PositionReturnTransferPreviewResponseBody
      • PreviewM2MTransferBody
      • ProviderLifecycleResource
      • RESTErrorModel
      • RequestPasswordChangeBody
      • RequestPasswordChangeResponseBody
      • ResolveChatActionBody
      • ResolveChatActionResponseBody
      • RoleResource
      • RollbackFeatureFlagBody
      • RollbackFeatureFlagResponseBody
      • StartLoginResponseBody
      • TransferPartyRef
      • TransferResource
      • TransfersReportRowResource
      • TripartyActionGuidanceResource
      • TripartyReadinessResource
      • TripartyReferencesResource
      • TripartyRequiredActionResource
      • TripartyResource
      • UpdateAccountBody
      • UpdateAccountResource
      • UpdateAccountResponseBody
      • UpdateClientRuleBody
      • UpdateClientRuleResource
      • UpdateClientRuleResponseBody
      • UpdateEmailNotificationCategoryResource
      • UpdateEmailNotificationSettingsResource
      • UpdateFeatureFlagBody
      • UpdateFeatureFlagResource
      • UpdateFeatureFlagResponseBody
      • UpdateM2MColumnPreferencesResource
      • UpdateOrderBody
      • UpdateOrderRequest
      • UpdateOrderRequestBody
      • UpdateOrderRequestResponseBody
      • UpdateOrderResource
      • UpdateOrderResponseBody
      • UpdateOrganizationBody
      • UpdateOrganizationResource
      • UpdateOrganizationResponseBody
      • UpdatePasswordBody
      • UpdatePasswordResponseBody
      • UpdateUserSettingsBody
      • UpdateUserSettingsResource
      • UpdateUserSettingsResponseBody
      • UpdateUserSettingsResponseResource
      • UserSettingsResource
      • ValidateTripartyBody
      • ValidateTripartyResponseBody
      • VerifyBitGoWebhookNotificationBody
      • VerifyBitGoWebhookNotificationResource
      • VerifyLoginOTPBody
      • VerifyOTPBody
      • VerifyOTPResponseBody

    Signing a Request

    Every request to the External API must be signed with your Ed25519 private
    key. The server verifies the signature against the public key stored for
    your credential. Signing takes four steps: build the canonical payload, sign
    it, encode the signature, and attach three headers to the request.

    Step 1 — Build the canonical payload#

    The payload is a single pipe-delimited UTF-8 string:
    METHOD|PATH|VARIABLE|TIMESTAMP_MS
    FieldValue
    METHODHTTP method in uppercase: GET, POST, PUT, PATCH, DELETE
    PATHURL path only, without the query string: /api/v1/organizations/acme/positions
    VARIABLEFor GET and DELETE — the raw query string (everything after ?). For all other methods — the raw request body, byte-for-byte as it will be sent. Empty string if there is no query or body.
    TIMESTAMP_MSCurrent Unix time in milliseconds. The exact same value must be sent in the X-Timestamp-Ms header.
    Examples:
    # GET with query parameters
    GET|/api/v1/organizations/acme/positions|status=open&page_size=50|1716643200000
    
    # GET with no query parameters (VARIABLE is empty)
    GET|/api/v1/organizations/acme/positions||1716643200000
    
    # POST with a JSON body
    POST|/api/v1/organizations/acme/orders|{"asset":"BTC","quantity":"1.5"}|1716643200000

    Step 2 — Sign with Ed25519#

    Sign the UTF-8 bytes of the canonical payload with your private key using
    standard Ed25519 (RFC 8032). Do not hash the payload yourself —
    Ed25519 hashes internally.
    Private key format. The key returned at credential creation is a
    base64url-encoded 64-byte Ed25519 private key (32-byte seed followed by
    the 32-byte public key). If your crypto library expects only the 32-byte
    seed, use the first 32 bytes: privateKey[:32].

    Step 3 — Encode the signature#

    Base64url-encode the 64-byte signature without padding (no trailing =
    characters). The result is always 86 characters long.

    Step 4 — Attach the headers and send#

    HeaderValue
    X-API-KeyYour Ed25519 public key, base64url without padding (43 chars)
    X-Timestamp-MsThe timestamp from Step 1, as a decimal integer
    X-SignatureThe encoded signature from Step 3
    Ready-to-use client implementations in Go, Python, and TypeScript are
    available in the Code Examples section.

    Replay protection#

    The server treats X-Timestamp-Ms as a monotonic nonce: each request must
    carry a value strictly greater than the last accepted one for that
    credential. There is no timestamp window — using the current system time in
    milliseconds is sufficient for a single-process client. If multiple
    processes share one credential, they must coordinate nonce values; the
    simpler option is to issue a separate credential per process.

    Common pitfalls#

    Signature mismatch (invalid api credential signature). Almost always
    a payload-construction issue. Check that:
    PATH does not include the query string, and VARIABLE does not
    include the leading ?.
    The body in the payload is byte-identical to the body actually sent —
    serialize the JSON once and reuse the same string for both.
    The timestamp in the payload and in X-Timestamp-Ms are the same value.
    You use base64url encoding (with - and _), not standard base64,
    and you strip the = padding.
    api credential request timestamp is too old. The timestamp was not
    greater than the previous request's — typically caused by concurrent
    requests from one credential or by clock rollback. See Replay protection
    above.
    API key headers ignored. If the request also carries an
    Authorization: Bearer <token> header, JWT authentication takes
    precedence and the signature headers are not evaluated. Remove the
    Authorization header for API key requests.
    Modified at 2026-06-16 11:15:56
    Previous
    Introduction
    Next
    Rate Limiting
    Built with