Quick Summary
The short version. Read the full policy below for everything else.
- Kedra Shield protects Shopify stores from fraud, bots and unwanted traffic by checking each storefront visit against the store's rules and IP-risk data.
- For each visit we process the visitor's IP address, approximate location and network, browser and device type, the page visited and the referring website. Visitor logs are kept for 3 months.
- We don't collect visitors' names, emails, phone numbers, postal addresses or payment details, and we don't record keystrokes, form contents or device fingerprints.
- For orders Shopify flags as risky, we keep the order's email address and IP address for 60 days so the store can review them.
- We don't sell personal data, share it for advertising, or use it to train AI models.
- Visitors use their privacy rights through the store they visited; merchants can email us at [email protected].
This Privacy Policy explains how Kedra Shield ("Shield", "the app", "Kedra", "we", "us") collects, uses, shares and protects information about Shopify merchants ("you") who install the app from the Shopify App Store, and about people who visit stores that use it ("visitors").
Shield is a security app. It checks storefront visits against the store's rules and IP-risk data and can block fraud, bots and unwanted traffic. To do that it has to process some visitor data, mainly IP addresses. We describe what the app actually does today, and where something works differently from what you might expect, we say so.
Who We Are
Provider / Data Controller
- Kedra, operated by an independent developer
- Based in Lithuania
- Full legal name and postal address available on request from [email protected]
Privacy & Support Contact
- Email: [email protected]
Lead Supervisory Authority
- State Data Protection Inspectorate of the Republic of Lithuania (VDAI), vdai.lrv.lt
EU Representative (GDPR Art. 27)
Not required. We are based in the EU (Lithuania).
UK Representative (UK GDPR Art. 27)
Not appointed. UK residents can contact us directly at [email protected].
Data Protection Officer
Not appointed. Privacy questions are handled directly by the developer at [email protected].
Scope of this Policy
This Policy Covers
- •The Kedra Shield app in your Shopify admin, including the Shield Assistant and the in-app support chat
- •The Kedra Shield app embed on your storefront and the scripts it loads
- •The Kedra Shield API at
api.kedra.io, which the app embed calls - •The Kedra Shield checkout validation function, which runs inside Shopify's checkout
- •Emails we send about Kedra Shield
This Policy Does NOT Cover
- •The kedra.io website
- •Our other apps - see the Kedra AI Index policy and our other policies on the privacy page
- •Your store's own privacy practices, theme or other apps
- •Shopify's own processing - see shopify.com/legal/privacy
Roles Under Privacy Law
Different roles apply to different activities.
| Activity | Kedra's role | Merchant's role |
|---|---|---|
| Your account: store details, settings, billing status, service emails | Controller | - |
| Product and marketing emails to merchants | Controller | - |
| Support chat and Shield Assistant (your messages) | Controller | - |
| Screening and blocking storefront visitors; visitor logs and analytics | Processor (on your behalf) | Controller |
| IP-risk lookups with ProxyCheck.io | Processor (on your behalf) | Controller |
| Risky-order review and auto-blocking of order IP addresses | Processor (on your behalf) | Controller |
| Checkout validation rules | Processor (on your behalf) | Controller |
| Store Health script and payment-form checks | Processor (on your behalf) | Controller |
| Responding to Shopify privacy webhooks | Processor (on your behalf) | Controller |
| Shared reputation signal across Pro stores (Section 4.2) | Controller | - |
| Preventing abuse of free trials and offers; security of our service | Controller | - |
Where we act as your processor, this policy and our Data Processing Addendum (available on request from [email protected]) set the terms. For California law, we act as your service provider for visitor and customer data.
Information We Collect
4.1 Merchants and store staff
- Store details from Shopify: store name, store email, customer-facing email, store domain and
myshopify.comaddress, currency and money formats, Shopify plan name. - App account: your Kedra Shield plan and subscription status (from Shopify Billing), trial, introductory-offer and promotion history, whether you've unsubscribed from marketing emails, and your app language.
- Your settings and rules: IP addresses and ranges, network (ASN) numbers, countries and cities, referring domains, user-agent patterns, Product Blocker rules, checkout rules (these can contain customer email addresses or postcodes you enter), private notes on rules, and block-page design. You can add rules by hand, by CSV import, or by approving Shield Assistant suggestions.
- Block-page logo: uploaded to your own Shopify Files.
- Shield Assistant messages: what you type and a summary of your Shield setup, which can include up to three IP addresses from your IP block rules. These are sent to our AI provider (Section 17); we don't store the conversation.
- Support chat: your store ID, store domain, Kedra Shield plan and support tier. When chat identity verification is on, also your store name and store email. Plus the messages and files you send.
- Email records: the domain part of the address we emailed (e.g.
example.com), the email type, and whether sending worked. If an email bounces or you unsubscribe, the domain and the reason. - Admin session: a Shopify session identifier used to sign you in to the app.
We do not collect store staff names or emails, the store owner's phone number or postal address, or payment card details.
4.2 Storefront visitors
When the Kedra Shield app embed is on, it runs on store pages for every visitor (some recognised crawlers are skipped, see 4.4). With each visit we receive:
- IP address.
- Information about the IP address from ProxyCheck.io (and Cloudflare for country): approximate location (country, city); network (ASN, internet provider, network type); whether it is a VPN, proxy, Tor exit, hosting provider or compromised; risk and confidence scores; recent attack history; VPN operator name; and when it was first and last seen as risky.
- Browser and device type. We work out device type, browser and operating system from the browser's user-agent string. The full string is sent but not stored.
- Referring website. The full referrer is sent; only the domain is stored.
- Page visited: page address, page type and page handle.
- A random session ID from the
__kedra_sessioncookie (Section 13). It is stored with each visit record but not currently used for blocking or shown in the dashboard. - The decision: allowed or blocked, and the rule that matched.
Pro stores only:
- Automation signals: a 0-100 "bot score" from signs of browser automation, such as the
navigator.webdriverflag, automation-tool markers, or a headless browser. - Behavioral Insights (off by default; the merchant turns it on): a 0/60/90 "interaction" score based on whether the mouse or keyboard was used, whether clicks land exactly at an element's centre, and how quickly address, card or phone fields are filled. For those fields we check only whether a value is present and at least 3 characters long. We never read, store or send what is typed. This score is for analytics only and never blocks anyone.
- Velocity limits (off by default): the number of page loads from the same IP address on the store in a 10-second window.
- Shared reputation signal (on with Pro threat protection): when a Pro store blocks a visit because the IP address is compromised or linked to attacks, we record a "bad actor" count against a hashed (salted SHA-256) version of that IP address. Other Pro stores' threat protection uses this count as a score for up to 14 days. Other stores receive only the score, never the IP address or which store reported it.
Store Health (all stores): on allowed visits, the app embed checks the page for the domains of third-party scripts and for fields that look like card-number fields (by field attributes such as name or label, never by value). It sends these with the page path, so we can warn the merchant about unexpected scripts or fake payment forms. No visitor identifier is stored with these reports.
In the browser only: the visitor's time zone helps location rules when the country is unknown. It is not sent to us.
4.3 Customers who place orders
- Risky orders. When Shopify assesses an order's risk as anything other than "none", we fetch and store the order number and ID, the customer's email address and browser IP address, the order total, payment status and order date, and Shopify's risk recommendation. We use these to show the merchant a fraud-review list. We don't fetch customer names, phone numbers, addresses or order items.
- Auto-block (Pro, off by default): if the merchant turns this on and the order's risk score meets their threshold, the order's IP address becomes an IP block rule, labelled with the order number and risk score.
- Checkout validation: at checkout, Shopify passes our checkout function the buyer's email, delivery and billing first and last names, and country and postcode, so it can apply the merchant's checkout rules. The function runs inside Shopify: this data is not sent to us or stored by us.
- Checkout verification token: when the merchant uses the Fake Checkout Blocker, the app embed adds a cart attribute
_kedra_ct. It holds a timestamp and a signature, with no personal data, and appears on the order.
4.4 Bots and automated traffic
Automated traffic is handled like any other visit (4.2). Recognised search-engine and social-media crawlers are always allowed, identified by user-agent:
- Google's crawlers, Bingbot, Facebook's link preview, Lighthouse and Pingdom are skipped entirely: no IP lookup, cookie or visit record.
- Other recognised crawlers (for example Meta's other crawlers, Applebot, DuckDuckBot, YandexBot, Baiduspider, LinkedInBot, Twitterbot, AhrefsBot and SemrushBot) are allowed without a ProxyCheck lookup. If they run JavaScript, they get the session cookie and a visit record like other visits.
4.5 What we do not collect
Visitors' names, email addresses, phone numbers or postal addresses from the storefront; payment card or bank details (billing runs through Shopify); keystrokes, the contents of form fields, or clipboard contents; device fingerprints (canvas, WebGL, audio, screen size, fonts, installed plugins); Shopify customer-account data on the storefront; advertising identifiers or cross-site tracking cookies; precise (GPS) location.
Sources
| Source | What we get |
|---|---|
| Shopify | Store details, subscription status, risky-order details, privacy requests (customer data request and erasure, shop erasure) |
| Visitors' browsers (via the app embed) | IP address, browser and device type, referrer, page, session ID, Store Health checks, scores (Section 4.2) |
| ProxyCheck.io | Information about IP addresses (VPN/proxy/Tor/hosting, risk, location, network) |
| Cloudflare | Visitor country when ProxyCheck has none |
| You | Settings, rules, CSV imports, Assistant messages, support chats |
| Our own systems | Shared reputation counts, usage counters |
Purposes and Legal Bases (GDPR Art. 6)
| Purpose | Legal basis |
|---|---|
| Provide the app: account, settings, billing via Shopify | Contract (Art. 6(1)(b)) |
| Screen and block visitors under the store's rules and threat protection | The merchant's legitimate interest in protecting their store from fraud, bots and abuse (Art. 6(1)(f)); we act on the merchant's instructions |
| Visitor logs and analytics for the merchant | The merchant's legitimate interest in monitoring the security of their store |
| Risky-order review and auto-blocking | The merchant's legitimate interest in preventing fraud |
| Checkout validation | The merchant's legitimate interest in preventing fraud and abuse at checkout |
| Store Health checks | The merchant's legitimate interest in detecting malicious scripts and fake payment forms |
| Shared reputation signal across Pro stores | Our and participating merchants' legitimate interest in preventing fraud and abuse across stores |
| Service emails (install, uninstall, plan changes, alerts you turn on, weekly summaries) | Contract |
| Product and marketing emails to merchants, and using your store's aggregate traffic numbers to decide which emails are relevant | Our legitimate interest in telling business customers about our product; you can opt out anytime |
| Shield Assistant and support chat | Contract |
| Preventing abuse of trials and offers; securing our service | Our legitimate interest |
| Handling privacy requests; keeping records the law requires | Legal obligation (Art. 6(1)(c)) |
You can object to processing based on legitimate interest (Section 11).
Automated Decisions and Blocking
Shield's checks run automatically in the visitor's browser on every page load, using the merchant's rules and IP information from our API. They run in a fixed order and the first rule that matches decides. The checks are rule-based: there are no machine-learning models.
What can trigger a block
Each item is configured by the merchant unless noted.
- IP address or range rules, including IP addresses auto-blocked from risky orders
- Country and city rules
- Product Blocker rules (country × product or collection)
- Network (ASN), user-agent and referrer rules, including optionally blocking visits with no referrer
- Tor
- Threat protection (Pro). It blocks when the IP is flagged as compromised, has 5+ recent attacks, or its combined risk reaches the chosen level (Conservative, Balanced or Strict). The combined risk is ProxyCheck's risk score plus up to 20 points from the bot score and up to 20 from the shared reputation signal. Mobile networks and Apple iCloud Private Relay are exempt, and business VPNs are exempt by default.
- Automation detection and velocity limits (optional)
Defaults
- On the Free plan, nothing is blocked until the merchant adds rules.
- On Pro plans, threat protection is on at "Balanced" by default. The merchant can change the level or turn it off.
- Recognised search and social crawlers are always allowed.
- If our API is unreachable or slow (over 5 seconds), the visitor is let through.
What a blocked visitor sees
- The merchant's block page. Default text: "Oops! Restricted Area - It seems like you don't have the necessary permissions to access this content."
- Or a redirect to a page the merchant chose.
- At checkout, a message such as "We're unable to ship to this address." or "Your session couldn't be verified. Please return to the store, refresh the page, and try checking out again."
- The block page does not show the reason for the block.
Blocked by mistake?
Contact the store. The merchant can review the visitor log and allow your IP address. You can also email [email protected] and we'll pass your request to the store. You have the right to ask for human review and to contest the decision (Section 11).
Who We Share Data With
8.1 Service providers (sub-processors)
| Provider | What they do for us | Data involved | Location |
|---|---|---|---|
| Shopify | The platform the app runs on; billing; file storage for block-page logos; runs our checkout function | Store, order and checkout data described above | Shopify infrastructure |
| Gadget Software Inc. (gadget.dev) | App hosting, database, background jobs, technical logs | Everything stored in our app database (Sections 4.1, 4.3) | Canada and the United States (on Google Cloud in the US) |
| Cloudflare, Inc. | Runs the Kedra Shield API (api.kedra.io), caching, visitor logs (Analytics Engine) and short-lived technical logs | Visitor data (Section 4.2) | Global network; data may be processed in the data centre nearest the visitor |
| ProxyCheck.io | IP-risk intelligence | Visitor IP addresses, plus your store's myshopify.com domain as a label | Servers in the UK, Germany, Finland, Poland, Canada and Singapore |
| Anthropic PBC | AI for the Shield Assistant and our support chat bot | Assistant messages and setup summaries; support chat messages and image descriptions | United States |
| Amazon Web Services (SES, SNS) | Sending email; bounce and complaint handling | Merchant store email, email content, store ID | EU (Stockholm) |
| Google Cloud | Hosts our self-hosted support chat (Chatwoot) and support bot | Support chat data (Section 4.1) | EU (Belgium) |
| Telegram | Internal notifications so we can answer support chats quickly | Support chat messages, name, email, IP address and screenshots shared in the chat | Global |
8.2 Other recipients
- The merchant whose store you visited. Merchants can view their store's visitor log (last 60 days), including IP addresses, and export up to 50,000 rows as CSV or JSON. They can also see the email and IP address of risky orders.
- Visitors' browsers. So that blocking can run in the browser, the store's Shield configuration, including the merchant's IP block rules, is included in the store's pages. For IP rules created automatically from risky orders, this currently includes the order number and risk score in the rule's description. Private rule notes are not included.
- Other Pro stores receive only the shared reputation score (Section 4.2).
- Authorities or advisers when the law requires it or to protect our rights.
- A successor business if Kedra is sold or merged, under terms at least as protective as this policy.
We do not sell personal data or share it for cross-context behavioural advertising, and we don't work with data brokers or advertising networks.
International Transfers
We are based in Lithuania (EU). Some providers process data outside the EEA: Cloudflare's global network, ProxyCheck's servers in Canada and Singapore, Anthropic in the United States, Gadget (Canada and the United States), and Telegram. Email (AWS) and our support system (Google Cloud) are hosted in the EU.
Where data leaves the EEA, we rely on the European Commission's adequacy decisions where they exist (for example for the UK and Canada). Otherwise, we rely on the Standard Contractual Clauses included in our providers' data processing terms where they offer them. Cloudflare's Data Processing Addendum includes the EU Standard Contractual Clauses and the UK Addendum. Telegram is used only for our internal support notifications and does not offer a data processing agreement.
You can request more information about transfer safeguards at [email protected].
Retention
| Data | How long we keep it |
|---|---|
| Visitor logs (Cloudflare Analytics Engine) | 3 months, then deleted automatically by Cloudflare. Your dashboard shows the last 60 days. Individual records can't be deleted before they expire. |
| Store Health reports (raw) | 3 months |
| IP-risk lookup cache | Up to 7 days (clean IPs), 1 hour (risky IPs), 5 minutes (Tor) |
| ProxyCheck.io records | IPs found clean: about 5 minutes. IPs flagged as VPN or proxy: 180 days in our ProxyCheck account log, labelled with the store's domain. |
| Free-plan visitor counter | To count unique visitors toward the Free plan limit (300 per 60 days), we keep the IP addresses seen on the store in the last 60 days. Older entries are removed when the counter next updates. If the store stops sending visits (for example after uninstalling), the entries are not removed automatically. |
| Shared reputation records (hashed IP) | The score fades to zero 14 days after the last report. The hashed record itself is not automatically deleted. |
| Velocity records (Pro, if on) | Request times for visitors who exceeded the limit, linked to the store and IP address. Not automatically deleted. |
| Risky-order records (email, IP, order details) | 60 days |
| IP block rules (including those created from risky orders) | Until the merchant deletes them or uninstalls |
| Order-action audit records (order number, decision) | Until the merchant uninstalls |
| Checkout rules (may contain customer emails or postcodes) | Until the merchant deletes them or uninstalls |
| User-agent rules and Product Blocker rules | Until the merchant deletes them. They are kept after uninstall; email us to delete them. |
| Store Health findings | Open findings are kept while the issue is seen and auto-resolve after 14 days unseen. Resolved findings are deleted 180 days after first detection. |
| Merchant account record (store name, store email, domain, plan and billing history, trial and promotion history, email opt-out) | Kept after uninstall, including after Shopify's shop erasure request, to prevent abuse of trials and offers and to keep billing records. You can ask us to delete it; we may keep the minimum needed for legal or anti-abuse reasons. |
| Copies of privacy requests Shopify sends us (may include a customer's email and phone number) | No set deletion date |
| Email delivery records (recipient domain only) | 180 days. Unsubscribe and bounce records (domain only): no set deletion date. |
| Shield Assistant conversations | Not stored by us; our AI provider keeps them for up to 30 days (Section 17) |
| Support chats | Kept in our support system and support notification channel until deleted; email us to delete yours |
| Technical logs | Kept for a short period set by our providers (Cloudflare: 7 days). They can include IP addresses (for example of auto-blocked orders) and your store email at install. |
| Cookie and browser storage on visitors' devices | See Section 13 |
When you uninstall
- We immediately delete your IP, network and referrer rules, checkout rules, risky-order records, order-action audit records, Store Health findings and email logs, and we reset your settings.
- A copy of your Shield configuration that we saved in your Shopify store's own data (settings and enabled rules, including IP block rules) may remain there. Uninstalling removes our access, so we can't delete it.
- The other items above follow the periods in the table.
Your Privacy Rights
Response time
We reply within one month (or sooner if the law requires) and may need to verify your identity.
11.1 GDPR / UK GDPR (EU, EEA, UK)
11.2 California (CCPA / CPRA)
You have the right to know what personal information we collect and why, to have it deleted or corrected, and not to be discriminated against for using your rights. You can use an authorised agent. We do not sell or share personal information and have not done so in the last 12 months. We do not use sensitive personal information to infer characteristics.
| Category | Collected? | Examples | Retention | Sold or shared? |
|---|---|---|---|---|
| Identifiers | Yes | IP addresses, session ID, store email, customer email on risky orders | Section 10 | No |
| Internet or network activity | Yes | Pages visited, referring domain, browser and device type | 3 months | No |
| Approximate geolocation | Yes | Country and city from IP address | 3 months | No |
| Commercial information | Yes | Order number, total and payment status of risky orders | 60 days | No |
| Inferences | Yes | Risk, bot and reputation scores (security only) | Section 10 | No |
| Sensitive personal information | No | - | - | - |
11.3 Other US states and other countries
Residents of other US states with privacy laws have similar rights, and in several states the right to appeal: reply to our response with "Appeal" in the subject line. Laws elsewhere (Canada, Brazil, Australia, Singapore and others) give similar rights.
11.4 How to use your rights
Visitors and customers
- Contact the store you visited or bought from. The store controls this data, and we help the merchant respond. If you contact us directly, we'll forward your request to the store.
Merchants
- Email [email protected] from your store email.
Shopify Privacy Webhooks
This is what our handlers do today for Shopify's three mandatory privacy webhooks:
| Webhook | What we do today |
|---|---|
customers/data_request | We look up the risky-order records we hold for that customer's email address. We don't send an automatic report. Email [email protected] and we'll send the merchant the data we hold for that customer. Any IP block rules or checkout rules the merchant created about that customer are visible in their Shield dashboard. |
customers/redact | We delete that customer's risky-order records (matched by email address). Not removed automatically: IP block rules (including any auto-created from the customer's order), order-action audit records, checkout rules the merchant created with the customer's email, our copy of the request, and visitor-log entries (which expire after 3 months). Merchants can delete rules in the dashboard; email us for the rest. |
shop/redact | We delete the store's IP, network and referrer rules, checkout rules, risky-order records, order-action audit records, Store Health findings and email logs (most of this is already deleted at uninstall). Not deleted automatically: the merchant account record, user-agent rules, Product Blocker rules, email delivery and suppression records, Assistant usage counters, copies of privacy requests, subscription records, and data held by Cloudflare and ProxyCheck (retained per Section 10). Email [email protected] to have these deleted. |
Shopify signs these webhooks. Our app platform (Gadget) receives them and runs the handlers above as soon as each one arrives.
Security
These are the protections we have in place:
HTTPS/TLS for our app, API and email sending
The app uses Shopify's session-token authentication; unauthenticated users can't read app data through our app API
Secret keys live in our providers' secret storage, not in code
IP addresses in the shared reputation signal are stored only as salted SHA-256 hashes
Unsubscribe links and checkout verification tokens are signed (HMAC)
The Shield Assistant can only suggest; you approve every change and our server checks it again
Payments are handled by Shopify; we never receive card details. No system is completely secure. If a breach affects your personal data, we will notify you and the authorities as the law requires.
Children
Kedra Shield is a business tool for Shopify merchants and is not directed at children. Our merchant customers must be adults acting for a business.
On a merchant's storefront, Shield screens every visitor on the merchant's behalf, whatever their age, and does not try to identify children. We don't knowingly collect personal data from children under 16 for our own purposes. If you believe a child's data has been provided to us, email [email protected].
Your Obligations as a Merchant
- Tell your visitors. Mention Kedra Shield in your store's privacy policy (suggested text below).
- List our cookie and storage (Section 13.1) in your cookie notice. Shield doesn't read your consent banner today, so they are set for every visitor while the app embed is on.
- Use lawful rules. Make sure your blocking rules follow the laws that apply to you, for example the EU Geo-blocking Regulation if you block countries inside the EU.
- Only upload data you're allowed to use, such as IP lists and customer emails in checkout rules.
- Remember that IP block rules are visible in your storefront's page source. IP rules created from risky orders currently include the order number and risk score. Don't put information you want to keep private in a rule; private rule notes are not published.
- Handle visitor requests, and forward to us any you need help with.
- Request our Data Processing Addendum from [email protected] if you need one.
Suggested text for your privacy policy
We use Kedra Shield, a security app by Kedra, to protect our store from fraud, bots and abuse. When you visit our store, your IP address, approximate location, network, browser and device type, the pages you visit and the referring website are checked against our security rules and IP-risk data (provided by ProxyCheck.io), and logged for up to 3 months. Visits that match our rules may be blocked automatically. Kedra Shield sets a cookie (__kedra_session, 60 days) and stores some data in your browser's storage. If an order is flagged as risky, its email address and IP address are kept for fraud review for 60 days. Signals about abusive IP addresses (stored only in hashed form) are shared across stores that use Kedra Shield. If you think you were blocked by mistake, please contact us. More information: https://kedra.io/privacy/kedra-shield
AI Disclosures
- Shield Assistant uses Anthropic's Claude models to turn your requests into suggested settings. We send Anthropic your message, the options you pick, whether you're on a Free or Pro plan, and a summary of your setup:
- setting switches and counts;
- 7-day traffic totals, top countries, network names and referring domains;
- fraud-order counts and the top countries of risky orders;
- app-embed status;
- for some requests, up to three IP addresses from your IP block rules.
- Support chat: our support bot uses Anthropic to draft replies and to describe images you attach.
- Blocking decisions don't use AI or machine learning. They are rule-based and use third-party risk scores (Section 7).
- We don't use any merchant, visitor or customer data to train AI models.
Changes to this Policy
When we change this policy, we update the "Updated" date at the top. If a change materially affects how we use personal data, we'll tell merchants by email or in the app before it takes effect. Version 2.0 replaces the earlier Kedra Shield policy published on our previous website.
Governing Law
This policy is governed by the laws of the Republic of Lithuania, without regard to conflict-of-laws rules. Nothing in it limits rights you have under mandatory law where you live, including the right to complain to your local supervisory authority.
Contact and Complaints
Privacy & support email
[email protected]
Postal address & legal name
Available on request from [email protected]
You can complain to the State Data Protection Inspectorate of Lithuania (VDAI, vdai.lrv.lt) or to your local authority: EEA edpb.europa.eu, UK ico.org.uk, California cppa.ca.gov. We'd appreciate the chance to resolve your concern first.
This Privacy Policy describes Kedra Shield's data practices as of the effective date above. It is not legal advice.