Tono 개인정보처리방침

Tono Privacy Policy

읽는 것

Tono Android는 카카오톡·인스타그램 DM·Snapchat·WhatsApp·Telegram·Messenger·Discord DM의 지원 대화방에서 화면에 보이는 상대 메시지와 내가 보낸 메시지, 내 입력줄 글을 읽습니다. 지원하는 단체방에서는 말한 사람의 이름도 번역할 글과 함께 보내며, 답장에 인용된 내 글도 전송할 수 있습니다. Discord 서버 채널·릴스·댓글은 지원 대상이 아닙니다.

읽는 방법과 화면 동작

Android 접근성 서비스(AccessibilityService API)를 사용합니다. 장애 지원 목적이 아닌 기능이며, 앱 안에서 사용 목적을 알리고 동의를 받은 뒤 사용합니다.

번역은 대화방의 말풍선 위에 덮개로 겹쳐 보여 줍니다. 덮개 색을 말풍선 색에 맞추려고 Android 11 이상에서는 접근성 화면 캡처 기능(takeScreenshot)으로 화면을 잠깐 찍습니다. 주로 대화방에 들어올 때와 밝은/어두운 화면이 바뀔 때 찍으며, 화면 전체 이미지를 받지만 말풍선 자리와 화면 곳곳 몇 점(화면이 검게 찍혔는지 확인)의 색 값만 읽고 이미지는 바로 버립니다. 화면 이미지는 저장하거나 서버로 보내지 않으며, 읽은 색 값도 Tono 서비스가 켜져 있는 동안 기기 메모리에만 둡니다.

일부 메신저에서는 덮개가 손가락 입력을 직접 받습니다. 덮개를 탭하면 그 말의 번역 상세를 열고, 밀기처럼 탭이 아닌 손짓은 접근성 손짓 보내기 기능(dispatchGesture)으로 같은 손가락 경로를 메신저에 다시 그려 원래 손짓대로 동작하게 합니다. 이 기능은 사용자가 덮개 위에서 한 손짓을 되살리는 데만 쓰며, 메시지를 보내거나 다른 조작을 대신하지 않습니다.

고른 추천 문장은 메시지 입력창에 넣을 수 있습니다. 메시지를 보내는 동작은 사용자가 직접 합니다.

보내는 곳

번역할 글은 HTTPS로 Tono 서버(Vercel, 미국 동부 Washington, D.C. 함수 지역 iad1)를 거쳐 OpenAI API로 전송됩니다. 맥락을 위해 최근 대화 일부가 함께 전송될 수 있습니다. 웹앱과 iOS 단축어도 사용자가 붙여넣은 글을 같은 서버 경로로 보냅니다. OpenAI API는 생성형 AI 서비스이며, 번역과 답장 추천을 만듭니다.

Tono 서비스가 켜져 있고 지원 대화방이 화면에 보이면, 아직 번역하지 않은 상대 메시지(대화방을 열거나 스크롤해서 보이는 메시지 포함)를 별도 탭 없이 자동으로 번역 요청할 수 있습니다. 추천을 요청하면 내 입력창 글도 전송합니다.

서버 저장

Tono 서버는 대화 본문을 데이터베이스에 저장하지 않으며 애플리케이션 로그에도 남기지 않습니다. Supabase(미국 동부)에는 설치 ID 해시·앱 버전·최근 활동 시각·테스터 연결·날짜별 사용 횟수를 보관합니다. 초대 코드는 해시와 운영자가 정한 번호 이름표·상태로 관리합니다. Redis의 하루 한도 카운터에는 신원 해시와 횟수만 들어가며 24시간 뒤 만료됩니다. Redis의 상세 한도 카운터도 해시와 횟수만 담고 24시간 뒤 만료됩니다. 요청을 빠르게 확인하려고 신원 해시별 이용 단계를 beta는 1시간, 그 밖의 단계는 24시간 동안 임시 저장합니다. 초대 코드 조회는 코드 해시를 키로 쓰고 번호 이름표와 테스터 ID를 값으로 1시간 동안 임시 저장합니다.

OpenAI 쪽 보관

OpenAI API로 보낸 입력과 출력은 기본적으로 모델 학습이나 개선에 사용되지 않습니다. 악용 감시 로그에는 프롬프트와 응답 및 그로부터 만든 정보가 포함될 수 있으며, 기본 보관 기간은 최대 30일입니다. 법률상 필요하거나 서비스 또는 제3자를 보호하기 위해 합리적으로 필요한 경우 더 오래 보관될 수 있습니다.

Tono는 OpenAI Responses API 요청마다 응답을 보관하지 않도록 요청합니다(store: false). 이 설정은 악용 감시 로그의 보관에 영향을 주지 않습니다.

출처: https://developers.openai.com/api/docs/guides/your-data (확인일: 2026-10-13)

기기 저장

대화 기록은 Android 앱을 쓸 때 폰 안 앱 저장소에, 웹앱을 쓸 때 브라우저 저장소에 보관됩니다.

Android에서 Tono 추천 카드로 보낸 말은 보낸 문장, 그 뜻, 처음 입력한 글을 메신저와 대화방 이름별로 폰 안 앱 저장소에 보관해 그 말풍선의 덮개에 뜻을 보여 주는 데 씁니다. 최근 쓴 대화방 20곳, 대화방마다 최근 50개까지만 남기고 넘치면 오래된 것부터 지웁니다. 이렇게 뜻이 기록된 말은 덮개를 위해 서버로 다시 보내지 않습니다. 덮개 번역과 상세 결과는 기기 메모리에만 두며 Tono 서비스가 다시 시작되면 사라집니다.

Android에서는 앱을 삭제하거나 시스템 설정에서 Tono 앱 데이터를 지워, 웹앱에서는 브라우저 저장공간을 삭제해 기기에 있는 정보를 지울 수 있습니다.

계정과 구독

로그인은 없습니다. 앱은 첫 실행 때 만든 무작위 설치 ID를 요청에 붙이고 서버는 해시로만 보관합니다. 구매·구매 알림(RTDN)·앱 무결성 확인(Integrity) 서버 코드는 설정이 갖춰져야 동작하며 운영에서 켜져 있는지는 미확정입니다. 켜기 전에 데이터 범주·받는 곳·보유 기간·삭제 방식을 고지에 추가해야 합니다. 초대 코드는 베타 테스터와 창립 멤버를 식별하는 데 씁니다.

사용량 기록

설치 ID 해시(또는 초대 코드 해시)와 날짜별 해석·추천 횟수를 Supabase(미국 동부)에 보관하며 대화 내용은 포함하지 않습니다. 설치 기록은 마지막 활동 뒤 13개월, 사용량 기록은 13개월을 기준으로 만료 대상을 정합니다. 만료된 행을 미리 세는 기능은 운영 데이터베이스에 적용됐지만, 자동 삭제는 아직 제공되지 않았고 실제 삭제도 하지 않았습니다. 테스터 초대 코드 해시·이름표·상태는 초대 관리 기록으로 유지하며 현재 별도 삭제 일정은 정해져 있지 않습니다. 하루 한도 카운터는 Redis에서 24시간 뒤 자동 만료됩니다.

만료 기록을 미리 세는 함수와 제약은 2026-10-11 운영 데이터베이스에 적용하고 읽기로 확인했습니다. 요청별 삭제 SQL과 만료 기록 삭제 SQL은 저장소에만 있으며 운영 데이터베이스에 적용하거나 실행하지 않았습니다. 예약 작업(Cron)과 자동 삭제는 없습니다. 이 SQL의 범위는 Supabase의 테스터·연결 설치·사용량 기록이며 Redis·PostHog·Vercel·Loops·Google Play 명단·연락 메일함·제공자 백업은 포함하지 않습니다.

분석

분석은 PostHog(미국 리전)에서 허용 목록에 있는 사건만 기록합니다: 요청 종류·단계·언어 쌍·지연·고정 오류 코드·오류가 발생한 앱 내부 지점·버전·추천 칩 또는 카드 탭·대기자 페이지의 단계별 진행·AI 모델과 토큰 사용량·선택형 번역 만족도 피드백. 번역 완료/실패 로그는 고정 문구와 허용된 수치를 기록하며, 설치 등록과 한도 로그에는 테스터 번호 이름표도 들어갑니다. 앱이 쓰는 로그에는 대화 본문이 없습니다. Vercel 플랫폼 로그 보관 설정은 미확정입니다. 세션 녹화와 화면 자동 수집은 없습니다. 식별자는 설치 ID 해시 또는 웹 익명 ID입니다. 분석에는 원문·이름·이메일을 보내지 않습니다. 위치 정보는 수집하지 않으며, PostHog 프로젝트의 설정은 IP 주소를 버리도록 되어 있습니다. 추가 진단과 선택형 피드백은 현재 꺼져 있습니다. Android 앱에는 분석만 따로 끄는 설정이 없습니다.

서버 분석 사건은 설치 ID 또는 초대 코드의 결정적 SHA-256 해시로 식별하며 person profile은 끕니다. PostHog의 person 삭제는 person에 연결된 데이터에 적용됩니다. 이벤트 UUID 삭제 요청 API는 alpha 기능 플래그와 승인이 필요하며 Tono의 사용 가능 여부와 personless 사건 적용 여부는 미확정입니다. 요청 접수나 미리 세기는 삭제 완료 증거가 아니며 개인별 사건 삭제나 익명화를 보장하지 않습니다. 유료 요금제의 7년 조회 기간은 물리 삭제일을 뜻하지 않습니다.

대기자 명단과 메일

대기자 접수는 현재 닫혀 있습니다. 다시 열 경우 신청에 필요한 이메일과 운영 메일 동의를 받고, 제품 소식·할인 메일 동의는 별도로 선택하게 하며 미리 선택하지 않습니다. Loops(Astrodon Corporation, 미국)는 신청 확인과 이메일 발송을 처리합니다. 신청에는 이메일, 폰 종류, 메신저, 언어, 사용 빈도, 가격 의향, 동의 문구 버전과 시각, 신청 출처 및 확인 시각이 포함될 수 있습니다. 과거 접수 자료의 현재 보유·삭제 상태는 확인하지 않았습니다.

처리 목적과 항목

Tono는 아래 목적에 필요한 범위에서 개인정보를 처리합니다.

번역·추천: 상대 메시지, 내가 보낸 메시지, 입력줄 초안, 답장에 인용된 글, 단체방에서 번역할 글과 함께 보내는 말한 사람 이름, 맥락용 최근 대화 일부, 언어 설정.

서비스 제공과 사용 한도 관리: 설치 ID 해시 또는 초대 코드 해시, 앱 버전, 최근 활동 시각, 날짜별 사용 횟수, 하루 한도 카운터.

서비스 접속: 요청을 보낸 기기의 IP 주소 등 통신에 필요한 정보가 Vercel에 전달됩니다. Tono는 이를 서버 데이터베이스에 저장하지 않으며, Vercel 자체 기록의 보유 기간은 확인하지 않았습니다.

서비스 품질 분석: 분석 절에 적은 허용 목록 사건과 설치 ID 해시 또는 웹 익명 ID.

베타 운영: 초대 코드 해시, 운영자가 정한 번호 이름표와 상태, Google Play 폐쇄 테스트 명단에 등록하는 이메일 주소, 연락처 이메일(tonoapp.support@gmail.com)로 받는 테스터 피드백 메일과 첨부.

문의·권리 요청 대응: 연락처 이메일(tonoapp.support@gmail.com)로 받은 문의와 권리 요청 메일의 보낸 사람 주소·표시 이름·제목·본문·첨부.

대기자 명단을 다시 열면 신청 이메일·폰 종류·메신저·언어·사용 빈도·가격 의향·동의 및 확인 기록·신청 출처를 이메일 신청과 안내 목적으로 처리합니다.

Tono는 민감정보나 고유식별정보를 따로 요청하지 않습니다. 번역을 요청한 글에 이런 정보가 포함되면 번역 처리에 함께 사용될 수 있습니다.

처리 위탁과 국외 이전

Tono는 서비스를 제공하려고 아래 업체에 개인정보 처리를 맡기며, 이 업체들은 국외에 있거나 국외에서 처리할 수 있습니다. Tono 서버와 업체 사이의 전송은 HTTPS 암호화 연결을 씁니다.

사용자 본인의 정보를 OpenAI로 보내는 처리는 개인정보 보호법 제28조의8 제1항 제3호를 임시 근거로 적습니다. 이 무료 비공개 베타에서 그 근거가 갖춰졌는지는 아직 검토 중입니다. 번역할 상대방 메시지·단체방 표시 이름·인용문에 대한 처리 근거도 검토 중이며, 사용자의 동의는 상대방의 동의를 대신하지 않습니다.

OpenAI OpCo, LLC(미국, privacy@openai.com): 번역할 메시지와, 추천을 요청할 때의 입력창 글을 보냅니다. 맥락을 위해 최근 메시지 일부·단체방 표시 이름·인용문이 함께 갈 수 있습니다. 추천을 요청할 때 보내고, 서비스가 켜져 있고 지원 대화방이 화면에 있어 덮개 번역이 만들어질 때에도 아직 처리하지 않은 받은 메시지(대화방에 들어가거나 스크롤해 보이게 된 것 포함)를 따로 탭하지 않아도 Tono 서버를 거쳐 OpenAI API로 보냅니다. 목적은 번역·추천이며, OpenAI 공식 데이터 정책 기준으로 악용 감시를 위해 최대 30일 보관될 수 있으며, 예외는 "OpenAI 쪽 보관" 절에 적습니다(2026-10-13 확인).

Vercel Inc.(privacy@vercel.com): Tono 서버를 실행합니다. 서버 함수는 미국 동부(워싱턴 D.C.)에서 실행되고, 요청은 Vercel 전송망의 접속 지점을 거쳐 전달됩니다. 설치 등록과 한도 관련 서버 기록에는 테스터 이름표가 들어갑니다. 접속 지점의 위치와 플랫폼 기록의 보관 위치·기간은 확인하지 않았습니다.

Supabase Pte. Ltd.(privacy@supabase.com): 테스터·설치·사용량 기록을 저장합니다. 저장 지역은 Tono 설정상 미국 동부입니다. 보관 기간은 "보유 기간과 파기" 절에 적습니다.

Upstash, Inc.(support@upstash.com): 한도 카운터와 임시 확인 결과를 저장합니다. 하루 한도 카운터는 24시간, 이용 단계와 테스터 확인 결과는 1시간 뒤 자동 만료됩니다(베타가 아닌 이용 단계는 24시간). 저장 지역은 미국 동부(버지니아 북부)입니다.

PostHog, Inc.(미국, privacy@posthog.com): 허용 목록에 있는 분석 사건을 받습니다. 현재 유료 요금제의 조회 기간은 7년이며, 이는 실제 삭제 날짜가 아니고 물리 삭제 시점은 확인하지 않았습니다.

Google LLC(미국, googlekrsupport@google.com): 연락처 메일함(Gmail)에 문의·피드백·권리 요청 메일이 보관됩니다. 테스터 피드백과 일반 문의 메일(첨부 포함)은 운영자가 답변이나 필요한 조치를 마친 날부터 90일이 지나면 이 메일함에서 삭제합니다. 이 메일함은 개인용 Gmail 계정입니다. 이 계정에는 Google 서비스 약관과 Gmail 프로그램 정책이 적용되며, Google과 따로 맺은 개인정보 처리 계약은 없습니다. 이 메일함에 메일을 보관하는 것이 처리 위탁에 해당하는지는 검토 중이며, 이 메일함의 저장 국가는 확인하지 않았습니다.

Astrodon Corporation(Loops, 미국, support@loops.so): 예전 대기자 명단 메일에 쓰였습니다. 대기자 명단은 닫혔고, 남아 있는 기록의 상태는 확인하지 않았습니다.

Tono 접근성 서비스를 끄거나 앱을 지우면 이후 OpenAI 전송이 멈추며, 이때 번역·추천 기능을 사용할 수 없습니다. 그 밖의 업체별 거부 방법과 효과는 확인하지 않았습니다.

보유 기간과 파기

하루 한도 카운터는 24시간, 이용 단계와 테스터 확인 결과 임시 저장은 1시간 뒤 자동 만료됩니다. 상세 한도 카운터도 24시간 뒤, 베타가 아닌 이용 단계의 임시 저장은 24시간 뒤 자동 만료됩니다.

Supabase의 설치·사용량 기록은 13개월 동안 보유합니다. 기록이 2026년 10월부터 쌓였기 때문에 13개월이 처음 지나는 기록은 2027년 11월에 생깁니다. 자동 삭제 기능은 아직 제공되지 않았고, 기간이 지난 기록을 세는 기능만 운영 데이터베이스에 적용했으며, 실제 삭제는 아직 하지 않았습니다.

테스터 피드백과 일반 문의 메일(첨부 포함)은 연락처 메일함(Gmail)에 보관되며, 운영자가 답변이나 필요한 조치를 마친 날부터 90일이 지나면 이 메일함에서 삭제합니다. 메일함에서 삭제한 뒤 Google 시스템에서 사본이 지워지는 시점은 Google 방침에 따릅니다.

권리 요청 메일과 처리 기록은 처리 사실 확인과 후속 문의 대응을 위해 결과를 알린 날부터 90일 동안 보관한 뒤 지체 없이 삭제합니다. 그 뒤에는 개인을 알아볼 수 없는 처리 건수만 남깁니다. 이 기간은 법정 보존 기간이 아니라 운영상 보유 기간입니다. 이 기간이 지난 뒤에도 이의를 제기하거나 권리를 다시 행사할 수 있으며, 새 요청으로 처리합니다.

Google 메일함의 저장 국가는 확인하지 않았고, 이 계정의 백업 보관 방식도 확인하지 않았습니다. Google Play 폐쇄 테스트 명단의 이메일 정리 시점도 정해지지 않았습니다. 예전 대기자 기록(Loops)과 업체 백업의 보관 상태도 확인하지 않았습니다.

테스터 연락·피드백

Google Play 폐쇄 테스트에 초대할 때 테스터가 알려 준 이메일 주소를 Play Console 명단에 등록합니다. 그 이메일 주소는 Tono 번역 서버의 데이터베이스에 저장하지 않습니다. 테스터 이름표는 운영자가 정한 번호(예: beta-001)입니다.

피드백은 연락처 이메일(tonoapp.support@gmail.com, Google Gmail 메일함)로 받습니다. 피드백 메일과 첨부는 운영자가 답변이나 필요한 조치를 마친 날부터 90일이 지나면 메일함에서 삭제합니다(자세한 기준은 보유 기간과 파기 절). 실제 대화 대신 가짜 문장으로 문제를 설명해 주세요.

테스터 초대 코드 해시·이름표·상태는 Supabase에서 초대 상태를 관리하는 데 사용합니다. 보유 기간과 삭제 일정은 아직 정해지지 않았으며, 자동 또는 예약 삭제는 설정되지 않았고 실제 삭제도 하지 않았습니다.

자동 수집 장치

웹 버전은 접근 키를 확인한 뒤 쿠키(tono_key)에 1년간 보관해 다시 입력하지 않게 합니다. 이 쿠키는 자바스크립트로 읽을 수 없는 HttpOnly 쿠키이고 HTTPS에서만 전송되며 광고나 추적에 쓰지 않습니다.

대기자 페이지는 분석용 무작위 익명 ID(tono_ph_id)를 브라우저 저장소(localStorage)에 둘 수 있습니다. 브라우저의 Do Not Track 설정이 켜져 있으면 분석 사건을 보내지 않습니다. ID를 지워도 대기자 신청은 계속할 수 있습니다.

테마·앱 언어 설정과 대화 기록은 브라우저 저장소에 둡니다. 브라우저 설정에서 쿠키와 사이트 데이터를 지우거나 차단할 수 있습니다. tono_key 쿠키를 차단하면 웹 버전에 접근 키를 다시 입력해야 합니다.

아동·연령

Tono는 만 14세 미만 아동을 대상으로 하지 않으며, 법정대리인 동의 절차를 두지 않습니다. 만 14세 미만 아동의 정보가 처리되었다고 생각되면 연락처 이메일로 알려 주세요. 요청 확인과 처리 가능 범위는 정보주체의 권리 절과 같습니다.

폐쇄 테스트 모집은 만 19세 이상만 대상으로 합니다. 이는 모집 기준이며 앱 안에서 나이를 확인하거나 접근을 차단하는 기능은 없습니다.

정보주체의 권리

자신의 개인정보 열람, 정정·삭제, 처리정지, 동의 철회를 요구할 수 있습니다. 요청은 "책임자·연락처·시행일" 절의 이메일로 보내 주세요. 본인 여부는 초대에 사용한 이메일 주소와 대조해 확인합니다.

테스터가 아닌 분도 같은 이메일로 요청할 수 있습니다. 예전 대기자 명단에 신청한 분은 신청할 때 쓴 이메일 주소에서 보낸 요청인지 확인합니다. 만 14세 미만 아동의 법정대리인은 대리 관계를 확인할 수 있는 자료를 함께 보내 주세요. 테스터와 대화한 분의 메시지는 번역을 위해 Tono 서버를 거쳐 OpenAI로 전달되지만, Tono는 대화 본문을 서버 데이터베이스나 애플리케이션 로그에 남기지 않으므로 운영자가 찾아 열람하거나 삭제할 기록이 없을 수 있습니다. 이때는 그 사실과 "OpenAI 쪽 보관" 절의 보관 조건을 알려 드리며, 테스터 휴대폰에 남은 기록은 운영자가 볼 수 없다는 점도 함께 안내합니다.

열람은 요구를 받은 날부터 10일 안에 할 수 있게 하고, 정정·삭제와 처리정지는 요구를 받은 날부터 10일 안에 조치 결과를 알립니다(개인정보 보호법 시행령 제41조·제43조·제44조). 열람을 미루거나 일부만 열람하게 하거나 요구를 따르지 않을 때에는 그 사유와 이의 제기 방법을 함께 알립니다. 이의는 같은 이메일로 받습니다.

운영자가 별도로 보관하는 대응표의 번호 이름표로 Supabase의 테스터·연결 설치·사용량 기록을 찾습니다. 한 사람의 이 기록들을 지우는 SQL은 준비해 합성 데이터로 로컬에서 시험·검토했지만 운영 데이터베이스에 적용하거나 실행한 적은 없습니다.

이 SQL은 Redis·PostHog·Vercel·Loops·Google Play 명단·연락처 메일함의 메일·업체 백업을 다루지 않습니다. Redis 하루 한도 카운터는 24시간 안에, 임시 확인 결과는 1시간 안에 자동 만료됩니다.

분석 사건의 식별자는 설치 ID나 초대 코드를 SHA-256으로 바꾼 값이고, 사람 단위 프로필은 만들지 않습니다. PostHog의 사람 단위 삭제는 프로필에 연결된 자료에 적용됩니다. 사건 단위 삭제 요청 API는 PostHog의 승인이 필요한 알파 기능이며, Tono가 쓸 수 있는지와 프로필 없는 사건에도 적용되는지는 확인하지 않았습니다. 특정 사용자의 분석 사건만 골라 삭제하는 기능은 제공하지 않습니다. 삭제 요청을 접수했거나 대상 수를 센 것만으로 삭제가 끝났다고 보지 않습니다.

삭제를 요청하면 법정 처리 의무를 검토하며, 어떤 기록을 처리했고 처리하지 못했는지 알려 드립니다.

안전성 확보 조치

번역할 글과 요청은 HTTPS로 전송합니다. 서버 데이터베이스에는 대화 글을 두지 않고 설치 ID와 초대 코드는 해시로 저장합니다. 데이터베이스 표에는 공개 API를 통한 접근을 막는 행 수준 보안(RLS)이 켜져 있고 서버 전용 권한으로 접근합니다. OpenAI 등 외부 서비스 키는 서버에만 두고 앱·웹 화면 코드에 넣지 않습니다. 분석에는 허용 목록의 사건만 보내며 원문·이름·이메일은 보내지 않습니다.

계정

Tono 로그인 계정은 없습니다. 테스터 초대 코드는 해시·번호 이름표·상태로 관리하고, 번역 서버에는 테스터의 이메일이나 실명을 저장하지 않습니다.

책임자·연락처·시행일

개인정보처리자·보호책임자: 백건우 (Geonwoo Baek)

연락처 이메일: tonoapp.support@gmail.com

시행일: 2026-10-13

방침이 바뀌면 이 페이지에 새 방침을 게시하고 시행일을 갱신합니다.

What Tono reads

Tono for Android reads the messages on screen, including messages you sent and your draft, in supported KakaoTalk, Instagram DM, Snapchat, WhatsApp, Telegram, Messenger and Discord DM conversations. In supported group chats, sender names accompany the text sent for translation. Your text quoted in replies may also be sent. Discord server channels, Reels and comments are outside the supported scope.

How Tono reads and acts on the screen

Tono uses the Android AccessibilityService API. This feature is not intended to assist people with disabilities. The app explains this use and asks for your consent before using it.

Translations appear as covers drawn over the message bubbles in a chat. To match cover colors to bubbles, on Android 11 and later Tono briefly captures the screen with the accessibility screenshot function (takeScreenshot), mainly when you open a chat and when light or dark mode changes. It receives a full-screen image but reads only the color values of a few points in the bubbles and across the screen (to detect a blank capture) and discards the image immediately. The screen image is never stored or sent to the server, and the color values stay only in device memory while the Tono service is running.

In some messengers the cover receives your touches directly. Tapping a cover opens the detailed translation of that message. Other gestures, such as swipes, are redrawn along the same finger path in the messenger with the accessibility gesture function (dispatchGesture) so they work as usual. Tono uses this only to replay the gesture you made on a cover; it does not send messages or perform other actions for you.

Tono can place a selected suggestion in the message input field. You decide whether to send the message.

Where text is sent

Text is sent over HTTPS through the Tono server on Vercel, in the Washington, D.C. iad1 function region in the United States, to the OpenAI API. Recent conversation turns may be included for context. The web app and iOS Shortcut use the same server route for text you paste. OpenAI is a generative AI service that produces translations and reply suggestions.

While the Tono service is on and a supported chat is on screen, Tono can automatically request translations of incoming messages not yet translated, including messages exposed by opening or scrolling the chat, without a separate tap. Your draft is also sent when you request suggestions.

Data stored by Tono servers

Tono servers do not store conversation text in the database or application logs. Supabase (US East) stores installation ID hashes, app versions, last activity, tester links and daily usage counts. Tester invite codes are managed as hashes with an operator-assigned numbered label and status. The Redis daily-limit counter contains only an identity hash and count and expires after 24 hours. Redis detail-limit counters also contain only a hash and count and expire after 24 hours. To check requests quickly, Redis caches the service tier by identity hash for 1 hour for beta and 24 hours for other tiers. Invite-code lookup uses the code hash as its key and a numbered label and tester ID as its value for 1 hour.

Data retained by OpenAI

OpenAI API inputs and outputs are not used to train or improve models by default. Abuse monitoring logs may include prompts, responses, and information derived from them, and are retained for up to 30 days by default. Longer retention may apply when required by law or reasonably necessary to protect the service or a third party.

Tono asks OpenAI not to store responses in each Responses API request (store: false). This setting does not change abuse-monitoring log retention.

Source: https://developers.openai.com/api/docs/guides/your-data (checked 2026-10-13)

Data stored on your device

Conversation history is stored in the app storage on your phone when you use Android, or in browser storage when you use the web app.

On Android, for messages you send with a Tono suggestion card, Tono stores the sent sentence, its meaning and your original draft in the app storage on your phone, grouped by messenger and chat name, to show that meaning on the message cover. It keeps only the 20 most recently used conversations and the latest 50 messages in each, deleting the oldest first. Messages with a stored meaning are not sent to the server again for covers. Cover translations and detailed results are kept only in memory and disappear when the Tono service restarts.

On Android, delete this data by uninstalling the app or clearing Tono app data in system settings. For the web app, clear browser storage.

Account and subscription

There is no login. The app sends a random installation ID created on first launch, and the server stores only its hash. Purchase, purchase-notification (RTDN) and app-integrity (Integrity) server code depends on configuration. Whether they are enabled in production is unconfirmed. Before enabling them, the policy must describe data categories, recipients, retention and deletion arrangements. Invite codes identify beta testers and founding members.

Usage records

Tono stores installation ID hashes (or invite-code hashes) and daily interpretation and suggestion counts in Supabase (US East), without conversation text. Installation records use a 13-month period after last activity, and usage records use a 13-month period. A function to count expired rows is installed in the production database, but automatic deletion is not available and no records have been deleted. Tester invite-code hashes, labels and status remain as invitation-management records; no separate deletion schedule has been set. The Redis daily-limit counter expires after 24 hours.

The expired-row preview function and constraints were applied to production on 2026-10-11 and confirmed by read-only review. The request-specific and expired-row purge SQL are only in the repository and have not been applied to or run on the production database. There is no Cron or automatic deletion. The SQL scope is Supabase tester, linked installation and usage records, excluding Redis, PostHog, Vercel, Loops, Google Play lists, the contact mailbox and provider backups.

Analytics

PostHog (US region) records only allowlisted events: request type and tier, language pair, latency, fixed error codes, internal app location of an error, version, suggestion chip or card taps, waitlist progress, AI model and token counts, and optional fixed-choice translation feedback. Translation completion/failure logs contain fixed labels and allowlisted measurements; installation-registration and limit logs include the tester label. Application logs contain no conversation text. Vercel platform log retention settings are unconfirmed. There is no session recording or automatic screen collection. Identifiers are an installation ID hash or a web anonymous ID. Analytics receives no source text, names or email addresses. Geographic location is not collected, and the PostHog project is configured to discard IP addresses. Additional diagnostics and optional feedback are currently off. The Android app has no separate setting to turn analytics off.

Server analytics events use a deterministic SHA-256 hash of the installation ID or invite code, with person profiles disabled. PostHog person deletion applies to data linked to a person. Its event-UUID deletion-request API requires an alpha feature flag and approval; Tono access and applicability to personless events are unconfirmed. An accepted request or preview count is not evidence of completed deletion. Individual-event deletion or anonymization is not guaranteed. The paid-plan seven-year query window is not a physical deletion date.

Waitlist and email

Waitlist signups are currently closed. If reopened, signup requires an email address and consent to operational email; consent to product news and discounts is separate and not preselected. Loops (Astrodon Corporation, United States) handles signup confirmation and email. Signup data may include your email, phone type, messenger, languages, usage frequency, price preference, consent text version and timestamp, signup source, and confirmation time. The current retention and deletion status of any historical signup data has not been verified.

Purposes and data we process

Tono processes personal information only as needed for the purposes below.

Translation and suggestions: the text translated (other people’s messages, messages you sent, your draft, text quoted in replies, and sender names sent with group-chat text), recent conversation turns for context, and language settings.

Providing the service and managing usage limits: installation ID hashes or invite-code hashes, app version, last activity, daily usage counts, and the daily-limit counter.

Connecting to the service: Vercel receives the requesting device’s IP address and other information needed for network communication. Tono does not store this in its server database, and Vercel’s retention period for its own records has not been verified.

Service-quality analytics: allowlisted events in the Analytics section with an installation ID hash or web anonymous ID.

Beta operations: invite-code hashes, numbered labels and status assigned by the operator, email addresses entered in the Google Play closed-test list, and tester feedback emails and attachments received at the contact email (tonoapp.support@gmail.com).

Responding to inquiries and rights requests: the sender address, display name, subject, body and attachments of inquiry and rights-request emails received at the contact email (tonoapp.support@gmail.com).

If the waitlist reopens, signup email, phone type, messenger, languages, usage frequency, price preference, consent and confirmation records, and signup source are used for signup and email notices.

Tono does not specifically request sensitive or unique identifying information. If text you ask Tono to translate contains such information, it may be processed as part of the translation.

Processors and cross-border transfers

Tono entrusts the processing of personal information to the providers below to run the service; they are located or may process data outside Korea. Transfers between the Tono server and these providers use encrypted HTTPS connections.

For sending the user’s own information to OpenAI, this policy cites Article 28-8(1)(3) of the Personal Information Protection Act as a provisional basis. Whether that basis is met in this free closed beta is still under review. The basis for processing the other person’s messages, group display names and quoted text is also under review, and the user’s consent does not replace the consent of the other person.

OpenAI OpCo, LLC (US, privacy@openai.com): receives messages to translate and, when you request suggestions, your draft. Some recent messages for context, group display names and quoted text may be included. They are sent when you request suggestions, and also, with the Tono service on, while a supported chat is on screen and covers are created: incoming messages not yet processed, including ones shown by entering or scrolling the chat, are sent through the Tono server to the OpenAI API without a separate tap. The purpose is translation and suggestions, and under OpenAI’s official data controls they may be retained for abuse monitoring for up to 30 days, with exceptions described in “Data retained by OpenAI” (checked 2026-10-13).

Vercel Inc. (privacy@vercel.com): runs the Tono server. Server functions run in the US East region (Washington, D.C.), and requests pass through an entry point of the Vercel network on the way. Server records for installation registration and limits include the tester label. The location of the entry point and where and how long platform logs are kept have not been verified.

Supabase Pte. Ltd. (privacy@supabase.com): stores tester, installation and usage records. The storage region is US East under Tono’s configuration. Retention is described in “Retention and deletion”.

Upstash, Inc. (support@upstash.com): stores limit counters and temporary check results. Daily-limit counters expire after 24 hours, and service tier and tester-check results after 1 hour (24 hours for tiers other than beta). Data is stored in the US East region (Northern Virginia).

PostHog, Inc. (US, privacy@posthog.com): receives allowlisted analytics events. The current paid plan has a 7-year query window; this is not an actual deletion date, and the physical deletion date has not been verified.

Google LLC (US, googlekrsupport@google.com): inquiry, feedback and rights-request emails are kept in the contact mailbox (Gmail). Tono deletes tester feedback and general inquiry emails and attachments from this mailbox 90 days after the operator's reply or required action is complete. The mailbox is a personal Gmail account. The Google Terms of Service and Gmail Program Policies apply to this account, and there is no separate data processing agreement with Google. Whether keeping mail in this mailbox counts as entrusted processing is under review, and the mailbox’s storage country has not been verified.

Astrodon Corporation (Loops, US, support@loops.so): was used for former waitlist emails. The waitlist is closed, and the status of any remaining records has not been verified.

If you turn off the Tono accessibility service or uninstall the app, sending to OpenAI stops from then on, and translation and suggestion features are unavailable. Other provider-specific ways to refuse and their effects have not been verified.

Retention and deletion

Redis daily-limit counters expire automatically after 24 hours, and temporarily stored service tier and tester-check results after 1 hour. Detail-limit counters also expire after 24 hours, and stored service tiers other than beta after 24 hours.

Supabase installation and usage records are kept for 13 months. Because records started in October 2026, the first records to pass 13 months will appear in November 2027, but automatic deletion is not available; only a function that counts expired records has been applied to the production database, and no records have been deleted yet. No automatic deletion is configured.

Tester feedback and general inquiry emails, including attachments, are kept in the contact mailbox (Gmail) and are deleted from this mailbox by the operator 90 days after the operator's reply or required action is complete. After deletion from the mailbox, when copies are removed from Google’s systems follows Google’s policies.

We keep rights-request emails and handling records for 90 days after notifying you of the result, to confirm how the request was handled and to answer follow-up questions, and then delete them without delay. After that we keep only counts that cannot identify anyone. This is an operating retention period, not a statutory one. You can still object or exercise your rights again after this period; we handle it as a new request.

The mailbox’s storage country has not been verified, and neither has this account’s backup handling. Also, no deletion date has been set for the Google Play closed-test email list. The status of former waitlist records (Loops) and provider backups has not been verified either.

Beta tester contact and feedback

To invite a beta tester to the Google Play closed test, the email address provided by the tester is added to the Play Console list. That email is not stored in the Tono translation server database. Tester labels are numbered labels assigned by the operator (for example, beta-001).

Feedback is received at the contact email (tonoapp.support@gmail.com, a Google Gmail mailbox). Feedback emails and attachments are deleted from the mailbox 90 days after the operator's reply or required action is complete (see Retention and deletion for details). Please report issues using made-up sentences instead of real conversations.

Tester invite-code hashes, labels and status are used in Supabase to manage invitation status. No retention period or deletion schedule has been set; no automatic or scheduled deletion is configured and no records have been deleted.

Cookies and browser storage

After an access key is verified, the web version stores it in a cookie (tono_key) for one year so you do not have to enter it again. This cookie is HttpOnly, cannot be read by JavaScript, is sent only over HTTPS, and is not used for advertising or tracking.

The waitlist page may store a random anonymous analytics ID (tono_ph_id) in browser localStorage. If your browser’s Do Not Track setting is on, no analytics events are sent. Deleting the ID does not prevent waitlist signup.

Theme and app-language settings and conversation history are stored in browser storage. You can delete or block cookies and site data in your browser settings. Without the tono_key cookie, the web version asks you to enter the access key again.

Children and beta age requirement

Tono is not intended for children under 14, and it does not have a parental-consent process. If you believe information about a child under 14 has been processed, contact the email address below. Requests are verified and handled within the scope described under Your rights.

Closed-test recruitment is limited to people aged 19 or older. This is a recruitment criterion; the app does not check age or block access.

Your rights and how to exercise them

You can request access to, correction or deletion of, or suspension of processing of your personal information, and you can withdraw consent. Send requests to the email in “Controller, contact, and effective date”. We verify that a request is from the email address used for the beta invitation.

People who are not beta testers can make requests at the same email. If you signed up for the former waitlist, we check that the request comes from the email address you signed up with. A legal representative of a child under 14 should include material showing the representation. Messages from people chatting with a tester pass through the Tono server to OpenAI for translation, but Tono does not keep conversation text in its server database or application logs, so the operator may have no record to look up or delete. In that case we tell you so, explain the retention terms in “Data retained by OpenAI”, and let you know that the operator cannot see records kept on a tester’s phone.

We provide access within 10 days of receiving the request, and we notify the result of a correction, deletion or suspension request within 10 days of receiving it (Enforcement Decree of the Personal Information Protection Act, Articles 41, 43 and 44). If we postpone access, allow only partial access or do not follow a request, we tell you the reason and how to object. Objections are received at the same email.

Using the numbered label in a separately held mapping, the operator locates a tester’s Supabase tester, linked installation and usage records. The SQL scripts that delete one person’s records were prepared, tested locally with synthetic data and reviewed, but have never been applied to or run on the production database.

Those scripts do not cover Redis, PostHog, Vercel, Loops, the Google Play list, the contact mailbox or provider backups. Redis daily-limit counters expire within 24 hours and temporary check results within 1 hour.

Analytics event identifiers are SHA-256 values derived from the installation ID or invite code, and person profiles are not created. PostHog person deletion applies to data linked to a person profile. Its event deletion request API is an alpha feature that requires PostHog’s approval, and whether Tono can use it and whether it applies to events without a profile have not been verified. There is no feature to select and delete only one user’s analytics events. Receiving a deletion request or counting matching records is not treated as proof that deletion is complete.

When you request deletion, we review applicable legal duties and tell you which records were and were not handled.

Security measures

Translation text and requests are sent over HTTPS. Conversation text is not stored in the server database, and installation IDs and invite codes are stored as hashes. Row-level security (RLS) is enabled on database tables to block access through the public API; access uses server-only credentials. Keys for OpenAI and other services are kept on the server and are not included in app or web screen code. Analytics receives only allowlisted events, without source text, names or email addresses.

Accounts

Tono has no login accounts. Tester invite codes are managed as hashes with numbered labels and status; tester email addresses and real names are not stored by the translation server.

Controller, contact, and effective date

Personal information controller and privacy officer: 백건우 (Geonwoo Baek)

Contact email: tonoapp.support@gmail.com

Effective date: 2026-10-13

If this policy changes, the updated version is posted on this page with a new effective date.