In Dart, the AtClient is stored within the AtClientManager. Once an atSign has been onboarded, you will be able to access the AtClientManager for its associated atSign.


AtClientManager is a singleton model. When AtClientManager.getInstance() is called, it will get the AtClientManager instance for the last onboarded atSign.

AtClientManager atClientManager = AtClientManager.getInstance();

If you need simultaneous access to multiple atClients, you need to create a new isolate for each additional atClient, and onboard its atSign within the isolate.

An example of this pattern can be found in at_daemon_server.


SyncService syncs the client app and remote secondary server’s changes:

  • If the client app’s changes are ahead, it pushes the changes to the remote secondary.

  • If the remote secondary is ahead, it pulls the changes to the client app.

You can retrieve the SyncService from the AtClientManager like so:

SyncService syncService = atClientManager.syncService;

Performing Syncs

To simply issue a sync, call the .sync function:

Last updated

© 2023 Atsign