at_contacts_flutter는 atSign 생태계를 사용하는 애플리케이션의 연락처 관리를 간소화하는 Flutter 플러그인입니다. atPlatform과의 원활한 통합을 통해 여러 플랫폼에서 안전하게 연락처에 접근하고 저장하며 관리할 수 있습니다. 이 패키지는 Android, iOS, macOS, Windows, Linux를 지원하는 일관된 API를 제공하여 연락처를 검색하고 상호작용할 수 있도록 합니다. 분산형 앱을 개발하는 개발자를 위해 설계되었으며, atSign 기반 애플리케이션 내에서 연락처 처리를 간편하게 만들어 사용자 경험을 향상시킵니다.
사용 사례
atSign 앱에서 분산형 연락처 관리하기
크로스 플랫폼 앱에서 안전한 연락처 접근 통합
atPlatform 기반 앱에서 연락처 선택 기능 활성화
atSign을 사용하여 장치 간 연락처 동기화
개인 정보 보호 중심의 통신 도구 개발
주요 기능
크로스 플랫폼 지원 (Android, iOS, macOS, Windows, Linux)
atPlatform를 통한 안전한 연락처 관리
내장 연락처 선택기 UI 컴포넌트
atSign 식별 시스템과의 통합
실시간 연락처 동기화
적합한 대상
atSign 기반 앱을 개발하는 개발자
탈중앙화된 연락처 저장이 필요한 앱
다양한 플랫폼 간 모바일 및 데스크톱 애플리케이션
개인정보 중심의 통신 플랫폼
atPlatform SDK를 사용하는 Flutter 프로젝트
고려 사항
atPlatform 설정 및 atSign 인증이 필요합니다
atSign 생태계 내에서만 사용 가능
at_client_sdk 안정성에 따라 달라짐
사용자 지정 연락처 워크플로우를 위해 추가 구성이 필요할 수 있습니다
atSign 기반 외 연락처 관리에 적합하지 않습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
at_client_sdk
The main repository for libraries used to build applications on the
Atsign Platform. Three categories: SDKs, libraries, and Flutter
widgets.
SDKs
at_client: the platform-neutral Dart SDK,
for command-line apps, headless services, and Internet-of-Things
devices. Owns the whole atSign lifecycle — Atsign('@alice').open,
.activate and .enroll hand back an AtClient — as well as
collections, sync, notifications and encryption.
at_client_flutter: the Flutter
layer on top of at_client, for mobile and desktop apps.
Adds onboarding / authentication dialogs and device-keychain
storage. Flutter web is not a supported target.
Libraries
Dart libraries for building Atsign Platform applications. All are
published on
pub.dev.
at_auth: the protocol layer under
at_client's lifecycle verbs: CRAM activation, the APKAM
enrollment handshakes, the .atKeys key stores and the registrar
client. Applications reach it through at_client.
at_chops: cryptographic and hashing
operations (encryption, decryption, signing, hashing) used by the
rest of the SDK, including the post-quantum primitives.
at_cli_commons: helpers for Dart CLI
/ server programs that use at_client. Wraps the boilerplate of
parsing flags, loading keys, and producing an authenticated
AtClient.
at_commons: foundational types used
across every package: keys, metadata, atSign validation,
root-domain parsing, verb builders for the Atsign Protocol wire
format, and the exception hierarchy.
at_contact: contacts library that
persists across different Atsign Platform applications.
at_lookup: low-level direct
implementation of the Atsign Protocol verbs. Used by at_client
and at_client_flutter.
at_onboarding_cli: the
at_register and at_activate command-line tools for registering,
activating and enrolling atSigns, and a small library for programs
that drive the same flows headlessly.
at_policy: scaffolding for building
policy-management services that talk to enforcement endpoints
via the Atsign Protocol.
at_server_status: logs the status
of the root server and the atServer for an atSign of your
choice.
base2e15: fork of the upstream
base2e15 package, kept here
for null-safety support.
dart_utf7: fork of the upstream
utf7 package, kept here for
null-safety support.
Flutter packages
Status: Most of the at_*_flutter packages listed below are
in the process of being deprecated. Over the next few months
they'll be replaced by example application code rather than
reusable widget packages. The recommended path for new Flutter
work is to read the example app at
packages/at_client_flutter/examples/todos
and adapt it directly. The packages will continue to publish
until that migration completes.
The SDK can protect everything an adversary could record today — data
shared between atSigns, an atSign's own data, and the secrets an
enrollment approval hands a new device — with post-quantum key
establishment, and can authenticate with a post-quantum signature. It is
opt-in per client, through one setting:
final preference = AtClientPreference(posture: PqPosture.pqReady)
..namespace = 'todos';
Posture
Authentication
Data written
Reads post-quantum data
PqPosture.legacy (default)
RSA-2048
legacy encryption
no
PqPosture.pqReady
ML-DSA-65; publishes a key package and this atSign's namespace keys
legacy encryption, so pre-quantum peers read it
yes
PqPosture.pqActive
ML-DSA-65, and an ML-DSA-65 data signing key
post-quantum by default; legacy writes refused
yes
Under the hood, each namespace an atSign owns gets a key-establishment
keypair — the X-Wing hybrid (ML-KEM-768 + X25519) by default, pure
ML-KEM-1024 on request — published as a signed advertisement; a writer
establishes a content key to the recipient's namespace key and encrypts
the record with AES-256-GCM, and a sender follows whatever the recipient
advertised. An enrollment submitted under a post-quantum posture
advertises a key package, and the approving client seals the atSign's
secrets to it rather than wrapping them with RSA. A client whose posture
asks for a stronger authentication key than its enrollment holds
re-enrolls itself at its first start, filing the new enrollment in the
same keys store beside the legacy fields. ML-DSA authentication needs an
atServer that verifies it; a legacy client makes no such demand.
The default posture moves one stage per major of at_client — 3.x
legacy, 4.x pqReady, 5.x pqActive — because a record may only be
written in a scheme every reader of it supports, so the stage that reads
post-quantum data rolls out before the stage that writes it by default. An
app on 3.x names pqReady or pqActive to move first.
Applications talk to at_client (3.x, a minor release), so most need no
code change: the new lifecycle verbs sit beside AtClientManager, whose
setCurrentAtSign is deprecated rather than removed. The packages that
take a major are the ones that used to hand at_auth's types to an app:
at_client_flutter 1.x → 2.0: AuthService and
FlutterEnrollmentService are gone; the dialogs take the atSign, the
keys store and the preference, and hand back the AtClient. Nothing
from at_auth is re-exported. The table is in the
at_client_flutter README.
at_onboarding_cli 1.x → 2.0: at_activate names its command
(at_activate onboard -a @alice), --posture replaces
--signingAlgoType, and AtOnboardingService keeps authenticate()
and atClient while onboard, enroll and close become
Atsign.activate, Atsign.enroll and atClient.stop(). The table is in
the at_onboarding_cli README.
at_auth 3.x → 4.0: AtAuth and its request and response objects
are gone; activation is activateAtSign(...), logging in and every
enrollment decision are at_client's. The table is in the
at_auth README.
If you happen to import at_onboarding_cli or at_auth directly — which
almost no application does — the short version is: replace the call that
built your client with Atsign('@alice').open(keys: ..., preference: ...),
.activate(...) or .enroll(...), drop the import, and read everything
else off the AtClient you get back.
Installation
Each package's own README and pub.dev page have the installation
details. Click any of the links above.
AI Agent Skill
The at_client_skills package gives AI agents accurate, up-to-date knowledge of
at_client and at_client_flutter — covering AtCollection<T>, auth flows,
querying, sub-collections, testing patterns, and common pitfalls.
# Add to your project
dart pub add --dev at_client_skills skills
# Install the skill into your IDE
dart run skills get
Works with Claude Code, Cursor, GitHub Copilot, Cline, and any agent
supporting the agentskills.io specification.