# ChainPatrol ## Docs - [Allowlist](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/allowlist.md): How ChainPatrol tracks trusted brand-owned domains, wallets, and social accounts to reduce false positives and serve as a baseline for phishing detection - [Asset Scans](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/asset-scans.md): How ChainPatrol captures point-in-time snapshots of URLs, social profiles, and addresses with screenshots, enrichment data, risk scores, and liveness - [Blocklist](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/blocklist.md): How ChainPatrol's blocklist confirms and distributes phishing sites, scam accounts, and malicious wallet addresses to browsers, wallets, and partners - [Brands](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/brands.md): How brands in ChainPatrol define the company or executive identities protected from impersonation using brand terms, images, and known legitimate assets - [Detections](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/detections.md): How ChainPatrol's monitoring pipeline automatically flags suspicious assets, applies detection rules, scores confidence, and groups related campaign threats - [Legal Docs](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/legal-docs.md): How trademark registrations, letters of authorization, and power of attorney documents support ChainPatrol takedown requests across providers - [Metrics](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/metrics.md): How ChainPatrol reports threat volume, takedowns filed and completed, and median response time across brands, asset types, and custom time windows - [Organizations](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/organizations.md): How organizations in ChainPatrol group brands, assets, team members, and services like detection, reviewing, takedowns, and wallet blocking in one workspace - [Reports](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/reports.md): How suspicious or safe assets get submitted to ChainPatrol with screenshots and context through the dashboard, API, or public Security Portal for review - [Reviews](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/reviews.md): How ChainPatrol reviewers approve, reject, skip, or escalate threat proposals using detection rules, scan evidence, and trusted reporter signals - [Security Portal](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/security-portal.md): How the Security Portal gives your community a branded public page to report phishing, impersonation, and scam threats without needing a ChainPatrol account - [Takedowns](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/takedowns.md): How ChainPatrol files takedown requests with hosting providers, domain registrars, social platforms, and app stores to permanently remove phishing content - [Watchlist](https://chainpatrol-mintlify-04a0fc55.mintlify.site/concepts/watchlist.md): How ChainPatrol watchlists ambiguous or in-takedown assets, rescanning them on an adaptive schedule to catch changes and confirm removal automatically - [Confirm Blocklist Prefix Matches](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-blocklist-confirm.md): Given a list of 4-byte (8-hex-char) hash prefixes and the algorithm version, returns the full SHA-256 hashes of blocked expressions whose prefixes match, grouped by prefix. Used by the browser extension to resolve true positives after a local prefix hit. - [Get Blocklist Version](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-blocklist-version.md): Returns the current blocklist snapshot and recent-additions feed metadata (tokens, counts, absolute CDN URLs) and the canonicalization algorithm version. Used by the browser extension to discover and cache blocklist artifacts. - [Asset Changelog](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-changelog.md): Asset changelog. Assets can be changed for various reasons, such as false positives, false negatives or normal reviews. - [Asset Check](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-check.md): Check asset status - [Get Asset Details](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-details.md): Get Asset Details - [Asset List](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-list.md): List asset statuses - [Asset Parse](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-parse.md): Parse and normalize asset content to extract structured information - [Start Asset Scan](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-scan.md): Initiate an asset scan. Optionally provide an organization slug for brand impersonation detection and a callback URL to receive results when the scan completes. - [Asset Search](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-search.md): Search for an asset by content or ID and get its status, associated reports, and takedown details - [Asset Submit](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-submit.md): Submit a list of assets such as domains, social profiles, or blockchain addresses. Automation will classify and assign them to appropriate organization(s). - [Unblock Asset](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/asset-unblock.md): Unblock an asset if it belongs to your organization, or create a dispute if it doesn't. Requires API key. - [Authentication](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/authentication.md): Authenticate ChainPatrol External API requests with an X-API-KEY header and learn how to request an API key for phishing detection and takedown endpoints. - [List Detection Configs](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-configs-list.md): List all threat detection sources for an organization. Each source includes its individual configurations with details like schedule, status, and source-specific settings. - [Run Detection Configs](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-configs-run.md): Run one or many organization detection configs and return run status per config. - [Update Detection Config](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-configs-update.md): Update an organization threat detection config status, schedule, and config fields. - [Validate Detection Configs](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-configs-validate.md): Validate detection configs by checking recent detection results, optionally running each config first. - [Get Detection Drift Signals](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-drift.md): Analyze organization detection configs and surface zero-result, noisy-source, and stale-query drift signals. - [List Threat Detection Results](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/detection-list.md): List threat detection results for an organization using API key authentication. Returns human-readable confidence levels (none, low, medium, high) and report status. Supports filtering by source, confidence level, asset status, and asset type. Includes pagination and search capabilities. - [Dispute Create](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/dispute-create.md): Create a new dispute for an asset via the external API. Requires API key. - [Dead Asset Spike](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-assets-dead-asset-spike.md): Compares the count of `DETECTED_AS_DEAD` LivenessStatusEvent rows in the current window against the baseline rate from the prior `baselineDays`. Severity fires only when the current count clears `minSpikeCount` (suppresses noise when the org has near-zero baseline activity) and exceeds the configure… - [Silent Detection Configs](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-detections-silent-configs.md): Validates that each enabled detection config has produced at least the configured minimum number of results within the lookback window. Returns the uniform healthcheck result shape. - [List Healthchecks](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-list.md): Return the registry of healthchecks ChainPatrol exposes today, including planned checks that are not yet implemented on the backend. Clients should iterate this list and only call endpoints where `implemented` is true. - [Missing Contact URL](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-organization-missing-contact-url.md): Flags organizations that have no contactUrl configured. The contact URL is the main communication channel (typically Slack or Telegram) used to reach the customer. - [Reviewing Backlog](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-reviewing-backlog.md): Counts proposals in PENDING review state for the org and grades severity (ok/warn/fail) against the configurable thresholds. - [Old Proposals in Review](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-reviewing-old-proposals.md): Counts PENDING proposals older than the warn / fail age thresholds (default 7 / 14 days) and lists the oldest offenders. - [Automated Takedowns Disabled](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-takedowns-automation-off.md): Flags orgs where takedown service is enabled but `isAutomatedTakedownsActive` has been off for longer than the configured age threshold (default warn 30 days, fail 60 days). Age is derived from the most recent SERVICES_AUTOMATED_TAKEDOWNS_UPDATED entry in OrganizationEvent, falling back to Organizat… - [Cancelled Takedown Count](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-takedowns-cancelled-count.md): Counts transitions into the CANCELLED status from the TakedownEvent log within the configured lookback window. Cancellations should be rare (typically 0-2 per week); a higher count usually signals a quality problem in the proposal funnel or a misuse of the CANCELLED status. - [IN_PROGRESS Takedown Volume](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-takedowns-in-progress-volume.md): Counts takedowns currently IN_PROGRESS for the org regardless of age. Complements `takedowns.stale-in-progress` (which only flags items past a staleness threshold) — a high overall pile-up signals submission-format or vendor-side issues even when individual items are not yet stale. - [Stale IN_PROGRESS Takedowns](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-takedowns-stale-in-progress.md): Counts takedowns that have sat in IN_PROGRESS past the staleness threshold (default 7 days) and lists the oldest offenders. - [TODO Takedown Volume](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/healthchecks-takedowns-todo-volume.md): Counts takedowns sitting in TODO status for the org. A backlog typically signals either an automation gap on a new threat surface, or manual-filing capacity issues on the takedown team. - [Get Metrics Breakdown](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/metrics-breakdown.md): Get blocked threat counts grouped by day, asset type, or brand. - [Get Found Threats Count](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/metrics-found.md): Return the default 'found' metric for an organization, defined as customer-facing new threats. - [Get Metrics Summary](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/metrics-summary.md): Get customer-facing organization metrics and blocked threat breakdowns for a date range. - [Get Operations Queue Snapshot](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/operations-queues-snapshot.md): Return pending review and takedown queue state with SLA and age buckets for operational monitoring. - [Create Organization Asset Group](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-asset-groups-create.md): Create a new asset group for organizing your organization's assets. - [Delete Organization Asset Group](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-asset-groups-delete.md): Delete an asset group. Assets in this group will become ungrouped. - [List Organization Asset Groups](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-asset-groups-list.md): List all asset groups belonging to your organization with asset counts. - [Update Organization Asset Group](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-asset-groups-update.md): Rename an existing asset group. - [Add Organization Assets](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-assets-add.md): Batch add multiple assets to your organization's allowlist. Each asset will be automatically parsed, classified, and approved as ALLOWED status. Supports optional group assignment. - [List Organization Assets](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-assets-list.md): List all assets belonging to your organization with optional filtering by type, group, and search query. Supports pagination. - [Remove Organization Asset](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-assets-remove.md): Remove an asset from your organization's allowlist. This performs a soft delete. - [Update Organization Asset](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-assets-update.md): Update an asset's name, description, or group assignment. The asset must belong to your organization. - [List Organization Brands](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-brands.md): List every brand belonging to the organization associated with your API key. Returns parent / product brands (`type: ORGANIZATION`) and individual / employee brands (`type: INDIVIDUAL`) in one call, including configuration fields: `brandColors` (HEX strings), `includedTerms`, `excludedTerms`, `ticke… - [Get Organization Metrics (Deprecated)](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-metrics.md): Get public metrics for one or more organizations - [Get Organization Metrics](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-metrics-list.md): Get metrics for your organization with optional date range and brand filtering. Organization is determined from your API key. - [Get Organization Reports (Deprecated)](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-reports.md): Get reports for an organization based on organization slug and filters - [List Organization Reports](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/organization-reports-list.md): Answers 'which of my organization's reports match these filters?'. Returns full report records — proposals, assets, scans, reporter, SLA — with filtering and pagination, newest first. The organization comes from your API key, or pass `slug` when your credentials can reach more than one. To check whe… - [API Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/overview.md): Index of every ChainPatrol External API endpoint for wallets, security apps, and marketplaces to check, submit, and monitor scam URLs and addresses. - [Report Create](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/report-create.md): Create a new report on ChainPatrol for a particular organization - [Search Reports](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/reports-search.md): Answers 'do reports already exist for these specific assets?'. Takes a batch of asset contents, normalizes each one the way ChainPatrol normalizes assets, and returns the reports covering them along with which of your assets each report matched. Use it to avoid filing a duplicate before calling `POS… - [Get Scan Result](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/scan-result.md): Get detailed scan results including enrichments, rules/checks results, and labels for a specific asset scan. - [Takedowns List](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/takedowns-list.md): List takedowns for an organization. Authenticate with an API key (the org is derived from the key) or with a user session (pass `organizationSlug` in the request body). - [List Threats](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/threats-list.md): List threats for an organization using API key authentication - [Get Current User](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/user-me.md): Get details of currently logged in user - [Update Current User](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/user-me-update.md): Update the currently authenticated user's profile and settings - [List User Organizations](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/user-orgs.md): List organizations accessible to the current user along with each org's subscription status, which services (reporting, reviewing, protection, takedowns, detection, dark web monitoring) are enabled, integration connection status (Slack, Discord, Telegram, Vercel, Intercom, Moderation API), whether O… - [Get User Organization](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/user-orgs-get.md): Fetch a single organization by slug. Returns the same per-organization shape as `/user/orgs` (id, name, slug, avatarUrl, subscriptionStatus, services flags, integration connection status, `obligatoryAdminApproval`, `legalDocuments`, and `trademarkRegistrations`). The `integrations` object shows whic… - [Validate API Key](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/validate.md): Validates if the provided API key is valid for Zapier integration - [Configure Webhook](https://chainpatrol-mintlify-04a0fc55.mintlify.site/external-api/webhook-config.md): Create and configure a webhook for an organization to receive real-time notifications for asset status updates and threat detections. Requires a valid API key with access to the specified organization. - [Asset Scans](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/asset-scans.md): How ChainPatrol runs time-stamped scans on URLs, social profiles, apps, and crypto addresses to detect phishing, track liveness, and score threats. - [Blocklist](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/blocklist.md): Continuously updated database of confirmed phishing sites and malicious assets, distributed to wallets and browsers for real-time crypto protection. - [Detection Sources](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/detection-sources.md): Automated monitors that scan search engines, social media, app stores, and blockchain feeds to surface impersonation and phishing threats to your brand. - [How We Use AI](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/how-we-use-ai.md): How ChainPatrol's AI combines content, visual, and behavioral analysis to detect phishing and impersonation threats in seconds across 50+ platforms. - [Review](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/review.md): How ChainPatrol combines automated risk scoring and human analyst review to approve block or allow proposals for suspected phishing and scam assets. - [Takedown](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/takedown.md): Lifecycle of ChainPatrol takedown requests: submission to hosts, registrars, and social platforms, monitoring for removal, and retraction of false positives. - [Watchlist](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/how-it-works/watchlist.md): How ChainPatrol watchlists suspicious or offline assets, rescanning on an adaptive schedule to detect when they turn malicious or confirm takedown success. - [Brand Impersonation](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/what-we-do/brand-impersonation.md): Types of brand impersonation attacks — including fake accounts, typosquatting, and deepfakes — and how crypto teams can defend their brand and community. - [General Phishing](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/what-we-do/general-phishing.md): Overview of common crypto phishing attack vectors including wallet drainers, seed phrase theft, social engineering, malware, and developer key compromise. - [Introduction](https://chainpatrol-mintlify-04a0fc55.mintlify.site/getting-started/what-we-do/introduction.md): How ChainPatrol protects crypto brands and their communities from phishing, fake domains, and social media impersonation through detection and takedowns. - [Address](https://chainpatrol-mintlify-04a0fc55.mintlify.site/glossary/asset-types/address.md): Report a wallet address or smart contract address as a ChainPatrol asset — normalized to lowercase and detected via the 0x prefix and 20-byte length. - [Page](https://chainpatrol-mintlify-04a0fc55.mintlify.site/glossary/asset-types/page.md): Use the PAGE asset type to report specific scam URLs on shared hosting platforms like linktr.ee, telegram.me, or wordpress.com without blocking the domain. - [URL](https://chainpatrol-mintlify-04a0fc55.mintlify.site/glossary/asset-types/url.md): Report a domain or subdomain as a URL asset in ChainPatrol — normalized to lowercase punycode so blocking one domain also covers all of its subdomains. - [Canary Tokens](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/canary-tokens.md): Set up Canary Tokens with ChainPatrol to detect when your website is cloned by phishing scammers and automatically block and take down malicious clones. - [Discord Bot](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/discord.md): Install the ChainPatrol Discord bot to let members report scam URLs, monitor channels for phishing links, and stream blocklist reports to a feed channel. - [GitHub](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/github.md): Install the ChainPatrol GitHub App to monitor pull requests, issues, and discussions for scam links and shield your open-source community from phishing. - [Intercom](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/intercom.md): Connect Intercom to ChainPatrol with the Canvas Kit app so support agents can report suspicious URLs from conversations and protect users from phishing. - [Slack Bot](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/slack.md): Add the ChainPatrol Slack bot to submit scam URL reports, configure threats feed notifications, and receive real-time blocklist alerts in your workspace. - [Telegram Bot](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/telegram.md): Add the ChainPatrol Telegram bot to your group to submit scam URL reports, run auto-link monitoring, and warn members about phishing links in real time. - [Vercel](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/vercel.md): Connect Vercel to ChainPatrol to verify legitimate deployments, reduce false positives, and accelerate takedowns of scam sites impersonating your team. - [Webhooks](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/webhooks.md): Use ChainPatrol webhooks to receive real-time asset status and blocklist updates, verify signatures, and keep your wallet or SecOps pipeline in sync. - [Zapier](https://chainpatrol-mintlify-04a0fc55.mintlify.site/integration/zapier.md): Use the ChainPatrol Zapier app to automate scam URL reports from Discord, Slack, or Google Forms and push malicious links straight to the blocklist. - [Onboarding Requirements](https://chainpatrol-mintlify-04a0fc55.mintlify.site/protect-your-brand/onboarding-requirements.md): Provide the assets, brand identity, and legal documents ChainPatrol needs to protect your organization from phishing and impersonation threats. - [Ongoing Communication](https://chainpatrol-mintlify-04a0fc55.mintlify.site/protect-your-brand/ongoing-communication.md): Stay connected with ChainPatrol via Telegram, Slack, and email to report threats, share upcoming events, and keep your organization assets up to date. - [Services Setup](https://chainpatrol-mintlify-04a0fc55.mintlify.site/protect-your-brand/services-setup.md): Configure ChainPatrol services like detection, monitoring, reviewing, wallet blocking, and automated takedowns for your organization's brand protection. - [Who Should Be Involved in Brand Protection](https://chainpatrol-mintlify-04a0fc55.mintlify.site/protect-your-brand/who-should-be-involved.md): Identify the stakeholders — executives, marketing, security, engineering, community, and support — who power a successful brand protection program. - [Constructor](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/chainpatrol-client/constructor.md): Instantiate a new ChainPatrolClient with your API key and optional baseUrl to connect the JavaScript SDK to ChainPatrol's threat detection API. - [asset.check](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/chainpatrol-client/instance-methods/asset-check.md): Check the real-time threat status of a single URL, page, or crypto address with the ChainPatrol JavaScript SDK's asset.check API method. - [asset.list](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/chainpatrol-client/instance-methods/asset-list.md): Retrieve bulk lists of ChainPatrol-reviewed assets filtered by type, threat status, date range, and organization slug using the asset.list method. - [asset.submit](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/chainpatrol-client/instance-methods/asset-submit.md): Bulk submit up to 100 domains, URLs, or crypto addresses to ChainPatrol for automated threat classification and optional organization assignment. - [Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/chainpatrol-client/overview.md): The ChainPatrolClient class connects your Node.js or browser JavaScript app to the ChainPatrol API for asset checks, listings, and submissions. - [Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/overview.md): The ChainPatrol JavaScript SDK provides ThreatDetector, Relay, Storage, and API client tools to protect wallets and dApps from phishing and scam URLs. - [Quickstart](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/quickstart.md): Install the ChainPatrol JavaScript SDK and wire up ThreatDetector, Storage, and Relay to add phishing URL checks to your wallet or browser extension. - [Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/relay/overview.md): The Relay class passes ChainPatrol warning-page events between the warning page, content script, and background script of your browser extension wallet. - [on()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/relay/static-methods/on.md): Register a callback with Relay.on() to listen for ChainPatrol warning-page events like ContinueAtOwnRisk inside your browser extension background script. - [run()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/relay/static-methods/run.md): Call Relay.run() in a content script to start forwarding ChainPatrol warning-page events between the page and your browser extension background script. - [send()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/relay/static-methods/send.md): Use Relay.send() from the ChainPatrol warning page to dispatch an event, such as ContinueAtOwnRisk, to your browser extension's background listeners. - [Browser](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/storage/browser.md): The Storage.browser() adapter caches ThreatDetector URL lookups in the browser's localStorage, ideal for dApps running in a standard web page context. - [Extension](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/storage/extension.md): The Storage.extension() adapter caches ThreatDetector results using the browser extension storage API for Chrome, Firefox, and Edge wallet extensions. - [Memory](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/storage/memory.md): The Storage.memory() adapter is the default in-memory cache for ThreatDetector, useful for testing and development where persistence isn't required. - [Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/storage/overview.md): Storage adapters cache ThreatDetector URL lookups to reduce ChainPatrol API calls, with browser localStorage, extension storage, and memory options. - [Constructor](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/constructor.md): Instantiate a new ThreatDetector with local or cloud mode, an API key, storage adapter, proxy URL, and custom redirect URL for scam URL detection. - [allow()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/instance-methods/allow.md): Add a URL or domain to the ThreatDetector local allowlist so subsequent url() checks return an ALLOWED status without calling the ChainPatrol API. - [block()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/instance-methods/block.md): Add a URL or domain to the ThreatDetector local blocklist so subsequent url() checks return BLOCKED status along with the ChainPatrol warning redirectUrl. - [ignore()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/instance-methods/ignore.md): Add a domain to the ThreatDetector ignorelist when a user chooses to continue at their own risk, preventing repeated redirects to the warning page. - [url()](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/instance-methods/url.md): Check whether a URL is a phishing or scam site with ThreatDetector.url(), returning an ALLOWED, BLOCKED, or UNKNOWN status plus an optional redirectUrl. - [Overview](https://chainpatrol-mintlify-04a0fc55.mintlify.site/sdk/threat-detector/overview.md): The ThreatDetector class wraps ChainPatrol's phishing and scam detection APIs with caching, storage adapters, and URL checks for dApps and wallets. ## OpenAPI Specs - [openapi](https://app.chainpatrol.io/api/v2/openapi.json?v=2)