Skip to main content
GET
/
travel_rule
/
satoshi_test
/
challenge
/
status
import cobo_waas2
from cobo_waas2.models.satoshi_test_challenge import SatoshiTestChallenge
from cobo_waas2.rest import ApiException
from pprint import pprint

# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
    # Replace `<YOUR_PRIVATE_KEY>` with your private key
    api_private_key="<YOUR_PRIVATE_KEY>",
    # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
    host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = cobo_waas2.TravelRuleApi(api_client)
    challenge_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

    try:
        # Get Satoshi Test challenge
        api_response = api_instance.get_satoshi_test_challenge(challenge_id)
        print("The response of TravelRuleApi->get_satoshi_test_challenge:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling TravelRuleApi->get_satoshi_test_challenge: %s\n" % e
        )

{
  "challenge_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "from_address": "0x1234567890abcdef1234567890abcdef12345678",
  "to_address": "0xabcdef1234567890abcdef1234567890abcdef12",
  "amount": "1100001000000000",
  "token_id": "ETH",
  "chain_id": "ETH",
  "status": "PENDING",
  "remaining_seconds": 10550,
  "matched_txid": "0xabc123...",
  "started_at": 1732523887000,
  "expires_at": 1732534687000
}

Documentation Index

Fetch the complete documentation index at: https://cobo.com/developers/llms.txt

Use this file to discover all available pages before exploring further.

Try Cobo WaaS Skill in your AI coding assistant (Claude Code, Cursor, etc.). Describe your needs in natural language to auto-generate production-ready SDK code and debug faster 🚀
import cobo_waas2
from cobo_waas2.models.satoshi_test_challenge import SatoshiTestChallenge
from cobo_waas2.rest import ApiException
from pprint import pprint

# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
    # Replace `<YOUR_PRIVATE_KEY>` with your private key
    api_private_key="<YOUR_PRIVATE_KEY>",
    # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
    host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = cobo_waas2.TravelRuleApi(api_client)
    challenge_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

    try:
        # Get Satoshi Test challenge
        api_response = api_instance.get_satoshi_test_challenge(challenge_id)
        print("The response of TravelRuleApi->get_satoshi_test_challenge:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling TravelRuleApi->get_satoshi_test_challenge: %s\n" % e
        )

Authorizations

BIZ-API-KEY
string
header
required

The API key. For more details, refer to API key.

In the API playground, enter your API secret, and your API key will be accordingly calculated.

Query Parameters

challenge_id
string<uuid>
required

The Satoshi Test challenge ID returned by the prepare or submit operation.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Response

The Satoshi Test challenge information (after submit or for status polling).

Full information about a Satoshi Test challenge, returned by the create and get operations.

challenge_id
string<uuid>
required

The unique identifier of the Satoshi Test challenge.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

from_address
string
required

The counterparty (self-custody) wallet address that must transfer the micro-deposit.

Example:

"0x1234567890abcdef1234567890abcdef12345678"

to_address
string
required

The Cobo-generated verification address that will receive the micro-deposit.

Example:

"0xabcdef1234567890abcdef1234567890abcdef12"

amount
string
required

The exact amount (in the token's smallest unit) that must be transferred. The amount is unique per challenge and is used together with to_address to identify a matching on-chain transfer.

Example:

"1100001000000000"

token_id
string
required

The ID of the token used for the micro-deposit (typically the chain's native asset).

Example:

"ETH"

chain_id
string
required

The chain on which the micro-deposit is expected.

Example:

"ETH"

status
enum<string>
required

The lifecycle status of a Satoshi Test challenge.

  • PREPARE: Challenge created (address and amount returned); the 180-minute countdown is not started yet.
  • PENDING: Challenge submitted; countdown active, waiting for the counterparty's on-chain transfer.
  • MATCHED: An on-chain transfer matching the expected amount has been observed; waiting for block confirmations.
  • VERIFIED: The matched transfer reached confirmation — the address is verified.
  • EXPIRED: Challenge was not matched within 180 minutes.
  • DELETED: Challenge was cancelled by the client.
Available options:
PREPARE,
PENDING,
MATCHED,
VERIFIED,
EXPIRED,
DELETED
Example:

"PENDING"

remaining_seconds
integer
required

Remaining time (in seconds) before the challenge expires. 0 when the challenge is not yet submitted or has already completed/expired.

Example:

10550

matched_txid
string | null

The on-chain transaction hash of the matching transfer, once matched.

Example:

"0xabc123..."

started_at
integer<int64> | null

Timestamp (milliseconds) when the challenge was submitted and the countdown started.

Example:

1732523887000

expires_at
integer<int64> | null

Timestamp (milliseconds) when the challenge will expire if not matched.

Example:

1732534687000