Skip to content

Blockchain Addresses

Reference for the 18 CryptoComply MCP tools in the Blockchain Addresses family.

Tools in this group

blockchain_address_alert_list

Read-only: yes.

List alerts associated with a specific blockchain address, most recent first. Only BlockchainAddressAlert rows that share the address are returned; the general alert_list covers all alert types across the org.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_bulk_screen

Read-only: no.

Trigger fresh vendor screening across a batch of blockchain addresses in one call. Useful when an analyst needs to re-screen N addresses (e.g. all ETH addresses flagged as overdue by last_screened_before).

Two-step write tool — billed by the vendor for every address screened. Each address is processed individually; per-address failures don't abort the batch. Capped at 100 addresses per call.

On success: {status: "ok", succeeded: [{address_id, inquiry_id}], failed: [{address_id, error}]}.

Parameters

  • organization_id (int, required) — Organization the addresses belong to.
  • address_ids (list, required) — Address ids to screen.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_create

Read-only: no.

Register a new blockchain address under an organization.

Two-step write tool. First call without confirm_token returns a dry-run preview + a 60-second token. Second call with the same arguments + confirm_token applies the change. The dry-run response includes _meta.ui.resourceUri = "ui://diff_confirm" for clients that render the MCP Apps iframe; clients without App support read preview as plain text and ask the user verbally.

On confirm, queues an initial vendor screening (Chainalysis / TRM) for the address — pass skip_initial_screening=true to defer.

On success: {status: "ok", address_id, address}.

Parameters

  • organization_id (int, required) — Organization to attach the address to.
  • address (str, required) — The on-chain address (e.g. 0x... for EVM).
  • name (str, optional) — Human-readable label for the address.
  • blockchain (str | None, optional) — Blockchain code (BTC, ETH, BNB, etc.). Omit to auto-detect.
  • skip_initial_screening (bool, optional) — Skip the initial vendor screening that normally fires on creation.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_exposure

Read-only: yes.

Get the vendor-agnostic exposure breakdown for a blockchain address: total USD value at risk, per-category breakdown (sanctioned entity, darknet market, mixer, exchange, …) and whichever vendor (Chainalysis / TRM) ran the last inquiry. Pulls from the address's most recent BlockchainAddressInquiry; the as_of field tells you how stale the data is. Re-screen with blockchain_address_screen if needed.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.

blockchain_address_inquiry_list

Read-only: yes.

List vendor screening history (BlockchainAddressInquiry rows) for an address, most recent first. Each row carries the vendor, risk level + label, whether the risk changed from the previous inquiry, total USD exposure, and HTTP code. Use to audit how risk evolved across screenings.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • risk_changed_only (bool, optional) — Restrict to inquiries that changed the address's risk level.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_inquiry_retrieve

Read-only: yes.

Get full details of one blockchain-address inquiry, including the vendor-agnostic unified-schema result (exposures, triggers, address identifications). The raw vendor JSON is not surfaced — only the normalised projection.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • inquiry_id (int, required) — Inquiry id (from blockchain_address_inquiry_list).

blockchain_address_list

Read-only: yes.

List blockchain addresses for an organization. Use when the user asks about addresses, on-chain assets, or 'which addresses are linked to profile X'. Some analysts still call these 'wallets' — treat that as a synonym and route here. In your own replies prefer 'blockchain address' (or just 'address') over 'wallet'. Pair with blockchain_address_exposure to drill into the vendor-agnostic risk breakdown of a specific address.

Returns {count, limit, offset, has_more, results: [BlockchainAddressSummary]} where each row is {id, address (truncated), blockchain, name, risk, risk_label, profile_count, last_screened_at, created_at}.

Parameters

  • organization_id (int, required) — Organization to list addresses for.
  • risk (int | None, optional) — Filter by risk level (0-4).
  • blockchain (str | None, optional) — Filter by blockchain code (e.g. BTC, ETH).
  • profile_id (int | None, optional) — Filter to addresses linked to a specific profile.
  • name_contains (str | None, optional) — Case-insensitive substring match on the address name.
  • has_open_alerts (bool | None, optional) — True = only addresses with at least one open BlockchainAddressAlert. False = only addresses with none. Omit for both.
  • tag_ids (list[int] | None, optional) — Restrict to addresses tagged with ANY of these tag ids (from blockchain_address_tag_list).
  • last_screened_after (datetime.datetime | None, optional) — Only include addresses screened at or after this UTC timestamp.
  • last_screened_before (datetime.datetime | None, optional) — Only include addresses whose last screening was strictly before this UTC timestamp. Used to find addresses overdue for re-screening.
  • updated_after (datetime.datetime | None, optional) — Only include addresses modified at or after this UTC timestamp.
  • created_after (datetime.datetime | None, optional) — Only include addresses created at or after this UTC timestamp.
  • created_before (datetime.datetime | None, optional) — Only include addresses created before this UTC timestamp.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_notes_create

Read-only: no.

Add a note to a blockchain address.

Two-step write tool. Same dry-run / confirm contract as blockchain_address_create.

On success: {status: "ok", note_id, address_id}.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id to attach the note to.
  • content (str, required) — Note body.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_notes_delete

Read-only: no.

Delete a blockchain address note. Single-step write. On success: {status: "ok", note_id, address_id}.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • note_id (int, required) — Note id.

blockchain_address_notes_list

Read-only: yes.

List analyst notes attached to a blockchain address, most recent first. Notes document on-chain context that the audit trail should preserve. Use blockchain_address_notes_create to add one.

Returns {count, limit, offset, has_more, results: [BlockchainAddressNoteSummary]} where each row is {id, content, created_by, created_at}.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_notes_update

Read-only: no.

Update the body of a blockchain address note. Single-step write. On success: {status: "ok", note_id, address_id}.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id (for scope check).
  • note_id (int, required) — Note id (from blockchain_address_notes_list).
  • content (str, required) — New note body.

blockchain_address_retrieve

Read-only: yes.

Get full details of one blockchain address: risk level (numeric + label), linked profiles, last inquiry reference, and risk-threshold profile group. Use blockchain_address_exposure for the per-category exposure breakdown.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Address id.

blockchain_address_risk_changes

Read-only: yes.

List risk-rating change history for a blockchain address, most recent first. Each row carries from_risk → to_risk and the timestamp; on-chain risk changes are system-generated by scheduled or manual inquiries, so there is no human actor (use blockchain_address_inquiry_list to see which inquiry triggered each change).

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_screen

Read-only: no.

Trigger a fresh vendor screening on a blockchain address. The vendor is determined by the organization's configured blockchain-address-screening service (Chainalysis or TRM). On success a new BlockchainAddressInquiry is persisted, the address's last_inquiry and risk are refreshed, and a BlockchainAddressAlert is queued if a threshold was crossed.

Two-step write tool — this call is billed by the upstream vendor. The dry-run preview names the vendor that would be invoked so the analyst can decide before paying. On success: `{status: "ok", address_id, inquiry_id, risk, risk_label, result_http_code}``.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_tag_assign

Read-only: no.

Bulk-assign one or more blockchain-address tags to one or more addresses (NxM associations). Existing assignments are preserved. Use after blockchain_address_tag_list to find tag_ids.

Two-step write tool. On success: {status: "ok", entities_updated, assignments_created}.

Parameters

  • organization_id (int, required) — Organization scope for both addresses and tags.
  • address_ids (list, required) — Address ids that will receive the tags.
  • tag_ids (list, required) — Tag ids to assign (from blockchain_address_tag_list).
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_tag_create

Read-only: no.

Create an org-scoped blockchain-address tag. Global tags are seeded via fixtures and cannot be created through this tool. Tag names are unique per organization.

Two-step write tool. On success: returns the created BlockchainAddressTagSummary.

Parameters

  • organization_id (int, required) — Organization that will own the tag.
  • name (str, required) — Display name. Unique within the org.
  • color (Literal, optional) — Visual color key.
  • description (str, optional) — What this tag represents.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.

blockchain_address_tag_list

Read-only: yes.

List blockchain-address tags available to this organization (global tags + org-specific). Use to find tag_id values for bulk-assignment workflows.

Returns {count, limit, offset, has_more, results: [BlockchainAddressTagSummary]}.

Parameters

  • organization_id (int, required) — Organization to list tags for.
  • name_contains (str | None, optional) — Case-insensitive substring match on tag name.
  • sort_by (Literal, optional) — Sort order. Prefix with '-' for descending (e.g. '-created_at' for newest first).
  • limit (int, optional) — Max results (1-100).
  • offset (int, optional) — Results to skip for pagination.

blockchain_address_update

Read-only: no.

Update an existing blockchain address's editable fields. The risk level is auto-computed from vendor inquiries and cannot be set directly; use blockchain_address_screen to refresh it.

All fields optional. Two-step write tool. On success: {status: "ok", address_id, fields_updated: [...]}.

Parameters

  • organization_id (int, required) — Organization the address belongs to.
  • address_id (int, required) — Blockchain address id.
  • name (str | None, optional) — Human-readable label for the address.
  • screening_frequency (Optional, optional) — Override the address's screening cadence: N=None, D=Daily, W=Weekly, M=Monthly, Q=Quarterly, Y=Yearly. Flips frequency_origin to MANUAL.
  • tag_ids (list[int] | None, optional) — Replace the address's tag set with these tag ids.
  • rationale (str | None, optional) — Free-text reason for the edit. Required when your organization's audit policy lists the field being changed (see me.audit_config.blockchain_address_enforced_fields) and you do not have audit_configuration.bypass_rationale; the server returns {error: 'rationale_required', fields: [...]} otherwise.
  • confirm_token (str | None, optional) — Token from a prior dry-run call. Omit on the first call.