Appearance
Blockchain Addresses
Reference for the 21 CryptoComply MCP tools in the Blockchain Addresses family.
Tools in this group
blockchain_address_alert_listblockchain_address_alert_retrieveblockchain_address_bulk_screenblockchain_address_createblockchain_address_exposureblockchain_address_listblockchain_address_note_createblockchain_address_note_deleteblockchain_address_note_listblockchain_address_note_updateblockchain_address_retrieveblockchain_address_screenblockchain_address_screening_compareblockchain_address_screening_listblockchain_address_screening_retrieveblockchain_address_tag_assignblockchain_address_tag_createblockchain_address_tag_deleteblockchain_address_tag_listblockchain_address_tag_updateblockchain_address_update
blockchain_address_alert_list
Read-only: yes.
List one blockchain address's risk alerts, most recent first, optionally by status, assignee or creation date. alert_list covers every kind of alert across the organization.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).status(Optional, optional) — Filter by alert status: open (nobody has started on it), under_review, escalated, closed, or not_closed (open, under review and escalated together — everything still being worked).assigned_to_user_id(int | None, optional) — Only alerts assigned to this user (a member's user id).assigned_to_me(bool | None, optional) — True: only alerts you hold.unassigned(bool | None, optional) — True: only alerts nobody holds. False: only held ones. Omit for both.created_after(datetime.datetime | None, optional) — Only alerts raised at or after this UTC timestamp.created_before(datetime.datetime | None, optional) — Only alerts raised before this UTC timestamp.sort_by(Literal, optional) — '-' prefix = descending.limit(int, optional) — Max results.offset(int, optional) — Results to skip.
blockchain_address_alert_retrieve
Read-only: yes.
Review one blockchain-address alert: its status and assignee, the address and linked profiles, and what the risk change was made of — previous vs current risk level, the exposure categories that moved and the identifications gained or lost. Use it for a blockchain-address alert instead of alert_retrieve. assigned_to_you says whether you can close it with alert_close or must alert_claim it first.
Parameters
organization_id(int, required) — Organization scope.alert_id(int, required) — Alert id (from alert_list).
blockchain_address_bulk_screen
Read-only: no.
Screen up to 100 blockchain addresses now, one after another; an address listed twice is screened once. Use for a batch such as every address overdue by last_screened_before. For each address: The result can change the address's risk level. A new level can move the address to its group's screening cadence for that level, replacing one set by hand; a higher level opens a risk alert, which notifies the team and is assigned automatically when the organization has a default assignee. The next scheduled screening stays where it was.
Previews first. Each id is processed individually; a row that fails does not stop the others. Answers with the per-row bulk envelope. A screening the provider could not complete is that row's failure.
Parameters
organization_id(int, required) — Organization scope.address_ids(list, required) — Address ids to screen.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_create
Read-only: no.
Add a blockchain address (wallet) to the organization. Unless skip_initial_screening is set, it is screened right after it's added. In a group, that screening's risk level picks its screening cadence from the group's schedule, and it is re-screened on that cadence.
An address can be added only once per organization; adding it again is an error. This doesn't link it to a profile: use profile_address_link for that.
Previews first.
Parameters
organization_id(int, required) — Organization scope.address(str, required) — The on-chain address (e.g. 0x... for EVM).name(str, optional) — Human-readable label for the address.blockchain(Optional, optional) — Blockchain code exactly as listed (ETH, BTC, AVAX_C), not a chain name. Omit if unknown.group_id(int | None, optional) — Group id (from group_list). The group whose risk thresholds and screening cadence the address follows from the start. Omit to leave it ungrouped until it joins the group of the first profile it's linked to.skip_initial_screening(bool, optional) — Don't screen the address right after adding it.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_exposure
Read-only: yes.
Get the exposure breakdown of a blockchain address's latest screening: total USD value at risk, per-category breakdown (sanctioned entity, darknet market, mixer, exchange, …) and the provider that ran it. 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 scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).
blockchain_address_list
Read-only: yes.
List blockchain addresses (wallets) 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 risk breakdown of a specific address. Attach/detach an address to a profile with profile_address_link / profile_address_unlink.
Parameters
organization_id(int, required) — Organization scope.risk(int | None, optional) — Only addresses at this risk level: 0 Unknown, 1 Low, 2 Medium, 3 High, 4 Severe. A never screened address has no level and matches none.blockchain(Optional, optional) — Filter by blockchain code (e.g. BTC, ETH).profile_id(int | None, optional) — Profile id (from profile_list). Only the addresses linked to it.name_contains(str | None, optional) — Case-insensitive substring match on the address name.address(str | None, optional) — The full address (hash), matched exactly but ignoring case: finds a wallet named by it.has_open_alerts(bool | None, optional) — True = only addresses with at least one open risk alert. 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) — '-' prefix = descending.limit(int, optional) — Max results.offset(int, optional) — Results to skip.
blockchain_address_note_create
Read-only: no.
Add a note to a blockchain address.
Previews first.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).content(str, required) — The note's text, as the person wrote it.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_note_delete
Read-only: no.
Permanently delete a note on a blockchain address; it can't be restored. Any member who may delete notes can delete anyone's: the preview says when the note isn't the caller's, so confirm with them that they still want it gone.
Previews first.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).note_id(int, required) — The note's id, from blockchain_address_note_list.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_note_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_note_create to add one.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).sort_by(Literal, optional) — '-' prefix = descending.limit(int, optional) — Max results.offset(int, optional) — Results to skip.
blockchain_address_note_update
Read-only: no.
Update the text of a note on a blockchain address. Applies at once, with no preview.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).note_id(int, required) — The note's id, from blockchain_address_note_list.content(str, required) — The note's full new text, as the person wrote it; it replaces the old one.
blockchain_address_retrieve
Read-only: yes.
Get full details of one blockchain address: risk level (numeric + label), linked profiles, last screening reference, and risk-threshold group. Use blockchain_address_exposure for the per-category exposure breakdown. To compare its screenings, pass compare=true: it opens the address on the comparison.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).compare(bool, optional) — Compare the latest screening with the one before (oragainst_screening_id).against_screening_id(int | None, optional) — An earlier screening to compare the latest with instead.
blockchain_address_screen
Read-only: no.
Screen one blockchain address now. The result can change the address's risk level. A new level can move the address to its group's screening cadence for that level, replacing one set by hand; a higher level opens a risk alert, which notifies the team and is assigned automatically when the organization has a default assignee. The next scheduled screening stays where it was.
Previews first. A screening the provider could not complete is an error.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_screening_compare
Read-only: yes.
Compare two screenings of one blockchain address: risk level, the exposure categories that moved (new / increased / decreased / removed) and the identifications gained or lost.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).screening_id(int, required) — Screening id (from blockchain_address_screening_list).against_screening_id(int, required) — The earlier screening to compare it against.
blockchain_address_screening_list
Read-only: yes.
List a blockchain address's screenings, its wallet screening history, most recent first. Each row carries what ran it, its risk level, whether it changed the address's risk and from which level, total USD exposure and whether the provider call failed. Answers how an address's risk changed over time: pass risk_changed_only=true for just the screenings that changed it. To compare two screenings, use blockchain_address_retrieve with compare=true.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).risk_changed_only(bool, optional) — Restrict to screenings that changed the address's risk level.sort_by(Literal, optional) — '-' prefix = descending.limit(int, optional) — Max results.offset(int, optional) — Results to skip.
blockchain_address_screening_retrieve
Read-only: yes.
Get one blockchain-address screening in full: its exposures, the rules it triggered and what the address was identified as.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).screening_id(int, required) — Screening id (from blockchain_address_screening_list).
blockchain_address_tag_assign
Read-only: no.
Add one or more tags to one or more blockchain addresses; tags they already carry stay. Find tag_ids with blockchain_address_tag_list.
Previews first. Each id is processed individually; a row that fails does not stop the others. Answers with the per-row bulk envelope.
Parameters
organization_id(int, required) — Organization scope.address_ids(list, required) — Address ids that will receive the tags.tag_ids(list, required) — Tag ids to assign (from blockchain_address_tag_list).rationale(str | None, optional) — Why the person is tagging them, in their words. Needed when the organization audits tag changes; the proposal says so. Ask; never invent it.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_tag_create
Read-only: no.
Create a tag this organization can put on its blockchain addresses. Names are unique within the organization; the tags every organization shares can't be created here. Assign it with blockchain_address_tag_assign.
Previews first.
Parameters
organization_id(int, required) — Organization scope.name(str, required) — Tag name, unique in the organization.color(Literal, optional) — Color the tag shows in.description(str, optional) — What this tag represents.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_tag_delete
Read-only: no.
Delete one of the organization's own blockchain-address tags (shared global tags can't be deleted). A tag still on any address is refused: remove it from them first, or pass force to delete it anyway, which removes it from every address and notes that in each one's history. Can't be undone.
Previews first.
Parameters
organization_id(int, required) — Organization scope.tag_id(int, required) — Tag id from blockchain_address_tag_list.force(bool, optional) — Delete it even though addresses carry it, removing it from all of them.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
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.
Parameters
organization_id(int, required) — Organization scope.name_contains(str | None, optional) — Case-insensitive substring match on tag name.sort_by(Literal, optional) — '-' prefix = descending.limit(int, optional) — Max results.offset(int, optional) — Results to skip.
blockchain_address_tag_update
Read-only: no.
Rename a blockchain-address tag, or change its color or description. Only the organization's own tags; global tags are shared across organizations and cannot be edited here. Omitted fields are left as they are. Find tag_id with blockchain_address_tag_list.
Previews first.
Parameters
organization_id(int, required) — Organization scope.tag_id(int, required) — Tag id from blockchain_address_tag_list.name(str | None, optional) — New display name.color(Optional, optional) — New visual color key.description(str | None, optional) — What this tag represents.confirm_token(str | None, optional) — From this tool's preview; omit to get one.
blockchain_address_update
Read-only: no.
Change a blockchain address's (wallet's) name, screening cadence or tags; omitted fields are left as they are. Its risk level comes from screenings and can't be set here: blockchain_address_screen refreshes it.
Previews first.
Parameters
organization_id(int, required) — Organization scope.address_id(int, required) — Blockchain address id (from blockchain_address_list).name(str | None, optional) — Human-readable label for the address.screening_frequency(Optional, optional) — How often the address is screened: N=Never, D=Daily, W=Weekly, M=Monthly, Q=Quarterly, Y=Yearly. It keeps this cadence instead of its group's until a screening changes its risk level or it's linked to or unlinked from a profile; each of those sets the group's cadence again.tag_ids(list[int] | None, optional) — The address's tags afterwards, from blockchain_address_tag_list: replaces the current ones, and an empty list removes them all. Omit to leave tags as they are.rationale(str | None, optional) — Why the person is making the change, in their words. Needed when the organization audits a field being changed; the proposal names those fields. Ask; never invent it.confirm_token(str | None, optional) — From this tool's preview; omit to get one.