SingularityNET is a decentralized AI service network utilizing blockchain technology. Dedicated to advancing Artificial General Intelligence (AGI) technology, SingularityNET aims to promote accessibility to AI, with a focus on establishing a worldwide platform where influence, value, and technology are shared fairly.
SingularityNET (SNET) stands as a decentralized AI service network, using blockchain technology for its infrastructure. At its core, SingularityNET enables developers to publish AI services, ensuring accessibility for anyone with an internet connection. Key to its functioning is the use of native AGIX tokens, which allow developers to set usage charges for their AI services. The range of services offered by SingularityNET encompasses diverse domains, including image analysis, speech recognition, text processing, bioinformatics, and more. These services span from elementary AI algorithms to comprehensive problem-solving solutions and even autonomous AI agents that interact seamlessly within the network. 
SingularityNET has taken a deliberate approach in designing its core architecture to prioritize scalability, extensibility, and regulatory compliance. Notably, the platform aims to reduce its dependence on the Ethereum blockchain while embracing blockchain-agnostic principles to streamline network interactions, aiming to provide a user-friendly, efficient, and robust experience for both developers and users. Moreover, SingularityNET maintains a distinction between its marketplace and the fully decentralized AI service registry. This approach is taken to ensure that regulatory compliance is met, while still upholding its core principles of openness and decentralization.
Key Components and Concepts
The SingularityNET Registry, operating as an ERC-165–compliant smart contract on the Ethereum Blockchain, serves as a repository for organizations, services, and type repositories. AI developers can use the Registry to publish comprehensive details of their AI services, while consumers employ it to identify the services they require. When users initiate searches within the Marketplace DApp, the Registry provides the necessary service information, allowing users to tag services and type repositories, thereby facilitating searches and filtering. The Registry furnishes complete information for discovering and engaging with AI services on the platform, often by listing the data in full or, when lengthy, by referencing the IPFS hash. Crucial information regarding the Registry's source, ABI, and deployment is contained within the singnet/platform-contracts repository. 
The Registry interface, IRegistry, stands as a comprehensive specification outlining the functionalities of the Registry. This interface, located in IRegistry.sol, includes natspec-compliant documentation for all functions, basically acting as a blueprint for how the Registry should work. 
The Registry stores four primary categories of data: Organizations, Services, Type Repositories, and Tags. It supports Create, Read, Update, and Delete (CRUD) operations for all of these categories, along with numerous view functions for data retrieval. 
Organizations provide an overarching framework under which services can be grouped. Each organization serves as the apex of the Registry’s data hierarchy. Service developers are encouraged to register an organization and subsequently place all of their services under its purview. Organization registration records encompass a name, an owner address in the identity context, a collection of member addresses, and a collection of services. 
The Registry entry includes a name, members, and an IPFS hash, acting as a link to the metadata file on IPFS. This file contains essential information related to the recipient address for payment and the storage particulars required to monitor all off-chain channel states. 
Services and type repositories registered under a specific organization are considered the property of that organization. The list of members functions as a fundamental access management structure, with members possessing the ability to create, update, and delete services under an organization's aegis. 
In the context of the Registry, a "service" represents a unique AI algorithm. Each service listed in the Registry contains essential information that helps consumers interact with the AI service. This information includes a name to identify the service, tags that make it easier for customers to find the service, and an IPFS hash, which acts as a link to the service's metadata file stored on IPFS. To simplify the process of discovering services, the Registry provides a function called "listServicesForTag," which can be used by decentralized applications (DApps) and smart contracts to find relevant services based on specific tags or categories. 
Service metadata is primarily stored off-chain in IPFS to optimize performance and mitigate gas costs. This metadata includes vital information, such as the version number, service name, and description, as well as technical insights for calling the service, such as encoding and request format. A list of daemon endpoints is also included, aggregated into one or more groups, alongside pricing information. An IPFS hash is provided for the service API model. 
The "type repository" in the Registry is a specific section where service developers provide metadata related to the service's model and the data types it uses. This entry contains various details, including a name to identify the type repository, tags that help users discover it, an optional internal management path within the organization, and a Uniform Resource Identifier (URI). 
The URI serves as a navigation tool for clients, allowing them to find the metadata file associated with the type repository. Decentralized applications (DApps) and smart contracts can make use of the "listTypeRepositoriesForTag" function to explore AI services based on specific tags or categories. The URI is presented as an IPFS hash, which means it can be hosted by SingularityNET, the service developer, or any IPFS pinning service, like Infura. This flexibility allows for various hosting options for the metadata. 
Tags are descriptive labels or keywords that are associated with both AI services and type repositories. These tags serve as a way to categorize and describe these resources, making it easier for users to discover and identify specific services or data types that match their needs or interests. 
- Associating Tags: SingularityNET allows service providers and developers to attach descriptive tags or labels to AI services and type repositories in the Registry. This association is achieved through specific Registry methods, such as "addTagToServiceRegistration." These tags serve to provide additional information about the resources and categorize them based on their attributes, domains, or features.
- Enhanced Discoverability: When tags are associated with services and repositories, they become prominently displayed and searchable within the SingularityNET dApp. This means that users of the platform can easily find and discover these resources by searching for relevant tags. For instance, if a service is tagged with "natural language processing" and "medical," users interested in medical-related natural language processing services can quickly locate it.
- Reverse Index: The Registry includes a unique feature called a "reverse index." This reverse index is integrated into the Registry contract and plays a crucial role. It allows other smart contracts to directly search the Registry for services and repositories based on the associated tags. This means that external applications, smart contracts, and services can easily access and utilize the services and data types listed in the Registry, forming the basis for what is referred to as the "API of APIs" functionality.
Multi-Party Escrow (MPE)
An Escrow contract, forming the basis of conditional transactions between two transacting parties, operates through an Escrow account. In SingularityNet, the Multi-Party Escrow (MPE) smart contract API and the payment channel work in concert to facilitate payments with minimal on-blockchain interactions between AI Consumers and AI service providers. 
The MPE contract offers two key functions:
- A wallet with deposit and withdrawal functions.
- A set of simple, unidirectional payment channels and support functions for managing these channels.
When two parties enter into a contract, they create a payment channel. Payment channels are a means of conducting off-chain transactions between parties, eliminating the delays associated with Blockchain block formation and preserving transactional security. 
Atomic Unidirectional Payment Channel
The core concept underpinning the Multi-Party Escrow is the Atomic unidirectional payment channel. These channels are maintained off-chain to prevent continuous updates on the Blockchain. Each channel is created with a specific expiration date and an initial token deposit. The sender, responsible for funding the channel, authorizes small token transfers to the recipient through signed authorizations. The recipient verifies these authorizations to ensure correctness and compliance with the escrowed funds. The channel's nonce (a numerical value that acts as a counter and is associated with each payment channel) is incremented with each claim, enabling the channel to continue offline while requiring a new nonce to be used. The sender retains the ability to collect all remaining funds after the expiration date or to extend the expiration and add funds to the contract at any point in time. 
SingularityNET's core purpose is to establish a decentralized marketplace for a wide array of AI services, allowing users to buy and sell these services directly. These services encompass a broad spectrum of AI and machine learning solutions, and there are possibilities for utility and adaptor services, streamlining service composition. A "service" is primarily defined by its specification and metadata. 
A Service Specification is a Protocol Buffer Definition that defines a service's API. It allows SingularityNET clients to programmatically understand the structure of requests and responses. When setting up a service on the platform, the initial step involves creating a service definition using protocol buffers. 
Clients and daemons need two crucial pieces of information to utilize a service effectively: service metadata, and organization metadata. 
Service metadata is the off-chain description of a SingularityNET service, typically hosted on the SingularityNET IPFS cluster. To utilize a service, clients need essential information:
- The service metadata.
- The address of the Multi-Party Escrow (MPE) contract (included in the metadata).
- The daemon, which provides access to the service, relies on metadata to configure payment systems.
The Organization Metadata
This provides details about the SingularityNET Organization and its services. Organization metadata within SingularityNET refers to the information describing a SingularityNET Organization. This metadata primarily resides on the SingularityNET IPFS cluster. The organization metadata file includes various fields with specific purposes:
- Type: Specifies whether the organization is an Individual or a Company.
- Contacts: Stores contact details related to the Organization. Multiple contacts can be included.
- Contact Type: Describes the nature of the contact, such as "support."
- Email ID: Provides the email associated with a contact.
- Phone: Lists the phone number related to a contact.
- Assets: References an image linked with the Organization, hosted on IPFS and accessible within the metadata.
- Groups: Organizations can be affiliated with multiple groups, with each group associated with a specific payment type.
- Payment Address: Identifies the address of the service provider who will receive payments.
- Payment Channel Storage Type: Specifies the type of storage used for managing payments, such as ETCD.
- Endpoints: Specifies storage endpoints that clients can use to establish connections.
These pieces of metadata can be shared with clients and daemons through three methods:
- Simple JSON File: Information can be presented in a straightforward JSON file.
- IPFS Hash Linking to JSON Metadata: Clients can access the metadata via an IPFS hash.
- Service Name in the Registry: The service name can be used to find the corresponding IPFS hash pointing to the metadata.
The SingularityNET daemon, or snetd, plays a vital role in linking AI services with the SingularityNET platform. It focuses on two main tasks: handling payments and translating requests. For payments, it ensures that consumers have funded the Multi-Party Escrow contract and have an active payment channel before they can use a service. It checks things like payment authenticity and available funds. Once payments are confirmed, it forwards the request to the service and keeps track of payment statuses for different users. 
It also takes requests in one format and converts them into the format that a specific AI service understands. This flexibility allows multiple AI services to use their own snetd, making it easier to manage and coordinate them. The daemon also provides various essential features like security, monitoring, and rate limiting. Just keep in mind that while the overall SingularityNET platform is open and decentralized, the Marketplace is currently in its beta phase, curated to meet specific requirements. 
In addition to its core functions, the daemon provides SSL termination, comprehensive logging with rotation and pluggable log hooks, metrics collection for resource optimization, monitoring, and alerts. It also offers rate limiting to prevent denial-of-service attacks and to allow service owners to scale at their own pace. 
- State Service Calls: Clients use this call to determine the next amount to sign for a service call, considering the payment channel state.
- Pay Per Use Calls: Clients sign up for cumulative amounts, and the daemon ensures proper validation and authentication, tracking usage accordingly.
- Free Calls: Service providers can offer limited free calls, with validation and usage tracking handled by the daemon.
- Control Service Calls: The daemon provides a range of gRPC calls for retrieving data needed by service providers to make claims on the blockchain.
- List-Unclaimed Requests: This function is used to identify unclaimed funds, ensuring service providers are aware of outstanding payments.
- Start-Claim Request/Requests: Initiating and managing claims on payments are supported through this feature.
- List-in-Progress: The daemon offers visibility into claims that have been initiated but not yet completed.
When clients intend to call a method provided by a published service, they communicate payment details through gRPC metadata. The server, in response, returns specific gRPC error codes, which are discussed in the following sections. 
gRPC metadata serves as a mechanism for clients to transmit essential payment details to the server when initiating a service request. This metadata enables clients to specify key information, including the payment protocol type ("escrow" in the current context), the payment channel ID, the payment channel nonce, the authorized payment amount, and the client's payment signature. This data provides the necessary payment context for the server to process the request and ensure secure and accurate payment execution. 
The SingularityNET Marketplace, a decentralized application (DApp), serves as a hub for AI services. It aims to simplify interactions with these services by providing a user-friendly web interface, abstracting complexities from users. This Marketplace also manages payments through MetaMask or General Wallet and handles service ratings. It continuously monitors Blockchain events, such as publishing new organizations or services, to swiftly update its database. The SingularityNET Marketplace acts as a curated view of the platform, aligning with legal requirements in various legislative regions. 
- Data Aggregation: It collects data from the on-chain Registry and pairs it with off-chain metadata. This enables easy searching, filtering, and discovery of AI services.
- Curation: The DApp integrates the SingularityNET curation service, ensuring that only vetted services and trusted owners are displayed.
- Custom UI Components: It provides UI components for interacting with AI services, simplifying user experience, and hiding the complexity of the gRPC protocol.
- Payment Integration: The Marketplace integrates with Multi-Party Escrow for seamless service payment, as well as offering a service rating mechanism.
- Usage Metrics: It captures usage metrics at a consumer level, aiding in the evaluation of services.
The AI Publisher, also known as Publisher Portal, serves as a tool for developers, aiming to streamline the process of publishing and managing their organizations and services. Its primary purpose is to simplify the listing of services on the Marketplace DApp, making it user-friendly for service users. 
- Onboarding an Organization:
- Developers can input all the necessary data to publish their organizations via user-friendly forms, eliminating the need for a command-line interface.
- Invite Workflow - Adding Members to an Organization:
- The platform facilitates the addition of new members to an organization through a straightforward workflow.
- Owners can simply enter the email addresses of members.
- The system then sends invitations to the members, ensuring that all required details, including wallet addresses, are provided upon acceptance of the invitation.
- Publishing an Organization on Blockchain:
- Once the organization details are completed, an automatic review process is initiated.
- The SingularityNet team approves the submitted information, allowing the organization to be published through the portal.
- Service Listing Screen:
- This screen displays a comprehensive list of all services managed within the respective organization.
- Only members affiliated with the organization can view, add, modify, or delete services.
- Service Metadata Screen:
- To simplify the process compared to the command-line interface, developers can use forms to input all the relevant metadata for publishing services.
- Publishing a Service on Blockchain:
- After entering service details, a review process ensures compliance with legal requirements before onboarding any service onto the Marketplace DApp.
- Claim Easily from Publisher Portal:
The Publisher Portal now facilitates the process of making claims.
The AGIX token, hosted on the Ethereum blockchain, serves as a fundamental component of the SingularityNET ecosystem. Its primary function is to enable users to pay for AI services and products within the marketplace. Additionally, AGIX is compatible with multiple blockchains, including Cardano, Polygon, and Binance Smart Chain, enhancing its utility. 
- Transactions: AGIX is used for transactions within the SingularityNET platform, aiming to ensure that AI services become a global commons infrastructure accessible to all. It offers interoperability, modularity, and scalability, making interactions among AI agents and users more efficient.
- Settlements: AGIX eliminates the complexities of AI agents needing access to native tokens of various protocols. It streamlines transactions across multiple contracts, technologies, and protocols on a single publicly auditable ledger, providing a plug-and-play experience for AI developers.
- Incentives: AGIX tokens are distributed as rewards for contributing utility to the network. The AI Curation Market, a core component, optimizes the discovery process for AI agents and incentivizes token holders to become stakers, thereby contributing to network growth. This unique mechanism rewards curators with AGIX tokens, fostering a dynamic and effective AI ecosystem.
- Governance: The SingularityNET network operations are funded democratically by directing a fraction of newly created tokens toward entities that enhance network infrastructure and associated tools. This community-driven approach aims to ensure that the technology's benefits are shared by all and that the system acts for the community's benefit.
AGIX Staking is the process of holding AGIX tokens to support the operations of the AI marketplace while earning rewards. This staking mechanism secures an additional pool of AGIX tokens and ensures their availability for facilitating the conversion of AGIX tokens to fiat currency when required. 
The Fiat-Crypto Gateway
AGIX Staking enables the Fiat-Crypto Gateway in the SingularityNET platform's ecosystem. This gateway empowers users to interact with AI service providers and other users using fiat currency instead of AGIX tokens, whilst still executing all value exchanges within the platform using AGIX tokens. This dual functionality allows the platform to offer fiat currency while preserving the unique economic logic of the AGIX token, which is fundamental to SingularityNET's philosophy and operation.
The first half of the Fiat-Crypto Gateway, involving automated fiat-to-AGIX conversion, is already in place, enabling users to purchase AI services with PayPal wallets. The second half, focusing on the automatic conversion of AGIX tokens earned by service providers into fiat, is yet to be built. 
To operate the Fiat-Crypto Gateway, continual exchanges of fiat currency for AGIX tokens are required. This involves maintaining a liquidity pool of AGIX tokens that can be exchanged for fiat as needed. Staking ensures the availability of this pool. When AGIX token holders stake their tokens, they agree to lock them up for a specific period. During this time, these tokens are temporarily entrusted to the Foundation, which manages the staking process. In return, stakers receive bonus AGIX tokens, similar to earning interest on fiat deposits. 
A single staking session follows these stages:
- Stake Window Period: This is the time frame during which tokens are locked in the staking smart contract.
- Staking Period: AGIX tokens are staked during this stage.
- Opt-out Period: Users have the option to opt out of the next staking period.
- Withdrawal Period: Tokens can be withdrawn after the staking period concludes.
AGIX token staking occurs in fixed-time windows, with a specific call for the staking period preceding each window. During the call for the staking period, token holders can request staking through the AGIX Staking DApp. A minimum amount of AGIX is required to ensure the operation's feasibility. Currently, there are no maximum amounts allowed per user, nor caps on the amount accepted for staking. However, caps may be implemented in the future if deemed necessary. 
Stakers have the option to opt out of the next staking window during the opt-out period. Users can choose to change their original decision during this window. This feature provides flexibility, allowing users to decide whether to carry over their stake amount and rewards to the next staking window or withdraw. 
In exchange for staking their tokens, users receive bonus AGIX tokens, similar to interest earned by fiat depositors. Users earn rewards for each stake they participate in, and these rewards are transferred at the end of the stake period if they choose not to opt-in for the next round. An AGIX Staking DApp provides a user-friendly calculator to determine potential rewards. Additional rewards for staking may be introduced in the future, making staking a valuable mechanism for token holders to gain short-term value from their tokens. 
- Dr. Ben Goertzel: CEO and Chief Scientist
- Dr. David Hanson: Co-founder
- Dr. Ben Goertzel: CEO and Chief Scientist
- Janet Adams: Chief Operating Officer
- Mario Casiraghi: Head of Crypto Operations
- Dr. Matt Ikle: Chief Science Officer
- Jan Horlings: Chief Product Officer
- Sergey Shalyapin: Chief Technology Officer
- Dr. Alexey Potapov: Chief AGI Officer
- Dr. Mihaela Ulieru: Chief AI Alchemist
- Alex Blagirev: Strategic Initiatives Officer
- Loic Claveau: Chief Marketing Officer
- Dr. Ben Goertzel: CEO and Chief Scientist
- Cassio Pennachin: Member
- David Lake: Member
- Ugo Di Leva: Member
- David Orban: Managing Advisor
- Penny Wong
Did you find this article interesting?