import cobo_waas2
from cobo_waas2.models.address_verification_detail import AddressVerificationDetail
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)
verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
try:
# Get address verification
api_response = api_instance.get_address_verification(verification_id)
print("The response of TravelRuleApi->get_address_verification:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TravelRuleApi->get_address_verification: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TravelRuleApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TravelRuleApi apiInstance = new TravelRuleApi();
UUID verificationId = UUID.fromString("fb377ea5-a97a-49b4-955d-23f8fdd5177a");
try {
AddressVerificationDetail result = apiInstance.getAddressVerification(verificationId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TravelRuleApi#getAddressVerification");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
verificationId := "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TravelRuleAPI.GetAddressVerification(ctx, verificationId).Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TravelRuleAPI.GetAddressVerification``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetAddressVerification`: AddressVerificationDetail
fmt.Fprintf(os.Stdout, "Response from `TravelRuleAPI.GetAddressVerification`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TravelRuleApi();
const verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a";
apiInstance.getAddressVerification(verification_id).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"verification_id": "fb377ea5-a97a-49b4-955d-23f8fdd5177a",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"chain_id": "ETH",
"status": "VERIFIED",
"verification_method": "SATOSHI_TEST",
"verified_at": 1732523887000,
"satoshi_test_detail": {
"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
},
"signature_detail": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"challenge": "Hi, please sign this message to confirm that you are the owner of this wallet address.\n- Nonce: b2860f5c9f201a81bc76f33e991c1f24\n- Timestamp: 1732523887\n",
"signature": "0x4355c6b7e1f3d2a09c8b7e6f5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a291b",
"verified_at": 1732523887000
}
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}Get address verification
Retrieve a single self-custody address verification record by its verification_id, including method-specific provenance:
verification_method=SIGNATURE→signature_detailis populated.verification_method=SATOSHI_TEST→satoshi_test_detailcarries the latest challenge state (status,remaining_seconds,matched_txid).
Use List address verifications to discover verification_id values.
import cobo_waas2
from cobo_waas2.models.address_verification_detail import AddressVerificationDetail
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)
verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
try:
# Get address verification
api_response = api_instance.get_address_verification(verification_id)
print("The response of TravelRuleApi->get_address_verification:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TravelRuleApi->get_address_verification: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TravelRuleApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TravelRuleApi apiInstance = new TravelRuleApi();
UUID verificationId = UUID.fromString("fb377ea5-a97a-49b4-955d-23f8fdd5177a");
try {
AddressVerificationDetail result = apiInstance.getAddressVerification(verificationId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TravelRuleApi#getAddressVerification");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
verificationId := "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TravelRuleAPI.GetAddressVerification(ctx, verificationId).Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TravelRuleAPI.GetAddressVerification``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetAddressVerification`: AddressVerificationDetail
fmt.Fprintf(os.Stdout, "Response from `TravelRuleAPI.GetAddressVerification`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TravelRuleApi();
const verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a";
apiInstance.getAddressVerification(verification_id).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"verification_id": "fb377ea5-a97a-49b4-955d-23f8fdd5177a",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"chain_id": "ETH",
"status": "VERIFIED",
"verification_method": "SATOSHI_TEST",
"verified_at": 1732523887000,
"satoshi_test_detail": {
"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
},
"signature_detail": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"challenge": "Hi, please sign this message to confirm that you are the owner of this wallet address.\n- Nonce: b2860f5c9f201a81bc76f33e991c1f24\n- Timestamp: 1732523887\n",
"signature": "0x4355c6b7e1f3d2a09c8b7e6f5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a2918f7e6d5c4b3a291b",
"verified_at": 1732523887000
}
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}import cobo_waas2
from cobo_waas2.models.address_verification_detail import AddressVerificationDetail
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)
verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
try:
# Get address verification
api_response = api_instance.get_address_verification(verification_id)
print("The response of TravelRuleApi->get_address_verification:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling TravelRuleApi->get_address_verification: %s\n" % e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.TravelRuleApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
TravelRuleApi apiInstance = new TravelRuleApi();
UUID verificationId = UUID.fromString("fb377ea5-a97a-49b4-955d-23f8fdd5177a");
try {
AddressVerificationDetail result = apiInstance.getAddressVerification(verificationId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TravelRuleApi#getAddressVerification");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
verificationId := "fb377ea5-a97a-49b4-955d-23f8fdd5177a"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.TravelRuleAPI.GetAddressVerification(ctx, verificationId).Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `TravelRuleAPI.GetAddressVerification``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetAddressVerification`: AddressVerificationDetail
fmt.Fprintf(os.Stdout, "Response from `TravelRuleAPI.GetAddressVerification`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.TravelRuleApi();
const verification_id = "fb377ea5-a97a-49b4-955d-23f8fdd5177a";
apiInstance.getAddressVerification(verification_id).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
Authorizations
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.
Path Parameters
The unique identifier of the address verification record.
Response
The address verification record.
Full detail of a single address verification record, including method-specific provenance.
verification_method=SIGNATURE→signature_detailis populated,satoshi_test_detailisnull.verification_method=SATOSHI_TEST→satoshi_test_detailcarries the latest challenge state (status,remaining_seconds,matched_txid);signature_detailisnull.
The unique identifier of this verification record.
"fb377ea5-a97a-49b4-955d-23f8fdd5177a"
The counterparty (self-custody) wallet address being verified.
"0x1234567890abcdef1234567890abcdef12345678"
The chain on which this address is verified.
"ETH"
The lifecycle status of an address verification record.
PENDING: A Satoshi Test challenge is in progress (countdown active or awaiting confirmation).VERIFIED: The address ownership has been confirmed (by signature or by a matched Satoshi Test transfer).FAILED: The verification attempt did not succeed (Satoshi Test expired without match, or signature verification rejected).
PENDING, VERIFIED, FAILED "VERIFIED"
How a self-custody address was verified.
SIGNATURE: Verified by off-chain wallet signature (viaGet a self-custody signature challenge+ signed message).SATOSHI_TEST: Verified by an on-chain micro-deposit (via Satoshi Test challenge).
SIGNATURE, SATOSHI_TEST "SATOSHI_TEST"
Timestamp (milliseconds) when verification completed. null while status=PENDING or FAILED.
1732523887000
The latest Satoshi Test challenge associated with this verification. Present only when verification_method=SATOSHI_TEST.
Show child attributes
Show child attributes
Off-chain signature provenance. Present only when verification_method=SIGNATURE.
Show child attributes
Show child attributes
Was this page helpful?
