Search packages, repositories and app categories

Package detailsv0.1.24+1

agent_dart

An agent library built for Internet Computer, a plugin package for dart and flutter apps. Developers can build ones to interact with Dfinity's blockchain directly.

30-day downloads
644
Likes
21
Pub points
60

Install package

flutter pub add agent_dart

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

agent_dart is a Dart and Flutter plugin that enables developers to interact directly with the Internet Computer blockchain, part of Dfinity's decentralized ecosystem. Designed for Web3 applications, it provides tools to build agents—software entities that can make authenticated calls to canisters on the blockchain. This package simplifies integration with blockchain services in Flutter apps, supporting secure, efficient communication with decentralized applications. It’s ideal for developers aiming to create crypto-native mobile experiences with direct blockchain access.

Use cases

  • Building Flutter apps that interact with Internet Computer canisters
  • Creating decentralized identity solutions
  • Enabling wallet and token interactions
  • Developing dApps with direct blockchain communication
  • Integrating with Dfinity's smart contract infrastructure

Key features

  • Direct interaction with Internet Computer canisters
  • Support for agent-based authentication
  • Lightweight Dart/Flutter integration
  • Secure communication with blockchain nodes
  • Built-in support for IC-specific data types

Suitable for

  • Flutter developers building Web3 applications
  • Dart developers targeting the Internet Computer
  • Teams creating decentralized mobile apps
  • Blockchain engineers using Dart
  • Crypto-focused startups on Dfinity's ecosystem

Considerations

  • Requires familiarity with Internet Computer and canister architecture
  • Limited to Dfinity's blockchain platform
  • May require additional setup for local development
  • Depends on stable network connectivity to IC nodes
  • Not suitable for non-IC blockchain environments

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Agent Dart

Pub License

An agent library built for Internet Computer for Dart and Flutter apps.

Join the Discord channel: Discord


📃 Table of content


⚡️ Quick start

For Dart/Flutter app

The latest stable version is: pub

dependencies:
  agent_dart: ^latest-version
For iOS projects

When you're using the plugin in your Flutter projects that contains iOS platform, make sure you've done the following setup the build settings.

  1. Open ios/Runner.xcworkspace.
  2. Select Runner on left folder view, and Project -> Runner.
  3. Select Build Settings, All, Combined and type strip style in the filter input field.
  4. Switch Strip Style and select Non-Global Symbols.

Settings

For developing the plugin
  1. Clone and follow Prerequisites, and make sure your Flutter installed properly.

  2. MUST DO: Bootstrap your project

./scripts/bootstrap.sh

🚦 Prerequisites

🧰 Resources

📖 Documentation
🔧 Helpers/Tooling
  • candid_dart, an automated candid builder for Dart classes
  • agent_dart_auth, an extension plugin for authorization, used for Internet-Identity authorization.
💡 Examples
  • simple counter, a simple counter demonstrate how to use agent_dart, a backend canister within.
  • auth counter, a counter needs user's authorization from Internet-Identity, demonstrate how to combine with agent_dart_auth.
  • ledger_app, a ledger app demonstrate how to import seed-phrase and make transactions.

🧘‍♂️ Motivation

The Internet Computer is powered by blockchain and its major impact is to bring WebApp to be truly decentralized. However, we are in the mobile internet era, even we can use Safari or Chrome on our cell phones. But most average people, not crypto enthusiasts, are likely to use native mobile apps, major users are there.

It's important to attract these people to use DApps of Internet Computer, by providing stable, fast, and fully integrated to Dfinity's blockchain. We likely to provide further solution to balancing the "Decentralization" and "Efficiency". But first things first, we have to make mobile native apps work.

agent-rs and agent-js are the actual lower level client-SDKs, just like ether.js or web3.js of Ethereum's ecosystem. This library is aiming to port and replicate features from them. And this library is mainly for mobile apps to connect canisters, not deploying contracts (you can do that if you want, but use dart directly).

We have tried our best to migrate most interface styles just like Javascript version, but there are limitations and differences between different programming languages, we will document them as much as possible.

🏆 Milestones

  • Milestone 1: ✅ Core features/libraries implementation.
  • Milestone 2: ✅ Enhanced built tool and more example apps
  • Milestone 3: 👷 Documentation and community driven development

👨‍💻 Contributing

By contributing to agent_dart, you agree that your contributions will be licensed under its MIT License.

  1. Fork this library and add your own branch like {feat|fix|test|dep}-{detail}.
  2. Follow the Prerequisites.
  3. Build rust dependencies for all supported platforms:
sh ./scripts/bootstrap
  1. Start the example.
cd example
flutter run
  1. Tests. (Unit Test and Integration Test)
flutter test
  1. Commit and make a pull request.

🔗 Reference and related projects

Feel free to list your project here, you can submit here.

⚠️ FAQ

Build rust libraries for iOS/MacOS
  • All rust method have to be written inside SwiftAgentDartPlugin.swift to avoid tree shaking by XCode.
Network problem in macOS
  • If you run example or build a flutter app, you may come up with this:
[macOS] SocketException: Connection failed (OS Error: Operation not permitted, errno = 1)
  • Go to macos/Runner of macOS.
  • Add following in DebugProfile.entitlements and ReleaseProfile.entitlements:
<key>com.apple.security.network.client</key>
<true/>

Categories

Dependencies

Dependency list 23 items

Source repository

Projects using this package