A beginner’s guide to the SingularityNET Beta [UPDATED]

Alethea AI Official Announcements
SingularityNET
Published in
11 min readFeb 11, 2019

--

How To Access The SingularityNET Decentralized Artificial Intelligence Marketplace.

A walkthrough for members of our community by our community-led marketing team.

The SingularityNET Decentralized Artificial Intelligence Marketplace is ready for you. Registration on the SingularityNET platform is the first step users need to take to begin buying and selling artificial intelligence services. We have given special attention to making the registration process accessible to anyone interested in joining the SingularityNET platform, regardless of their experience.

What is the SingularityNET Decentralized AI Marketplace?

SingularityNET aims to enable the discovery of AI services and algorithms created by developers from all over the world in a decentralized and commission free manner. Our platform is unreservedly inclusive as we seek to create a rich and diverse ecosystem of developers that will participate in making an array of creative and competitive services. At SingularityNET, we believe in protecting the privacy of our platform participants and our decentralized architecture removes the element of trusting any centralized and privileged entity.

Currently, if a developer wants to monetize an AI service, the developer will likely need to work for a large organization with the necessary marketing and connections required to create and sustain a viable market. Similarly, buyers interested in AI services have only few typically expensive agencies from which to purchase. As such AI markets exhibit an oligopoly-oligopsony relationship.

SingularityNET removes the need for a trusted matchmaker that assumes control of the information flowing through the ecosystem. Most importantly, SingularityNET enables the AI services to be modularly designed and combined with other AI services, hence allowing for the creation of unique and specialized services that may not be available elsewhere.

We invite you to participate in the world’s largest decentralized network of AI services and to join the movement to democratize AI.

Who is this Article For?

SingularityNET’s success will rely heavily on network effects. That is, the more market participants use the platform, the more robust and powerful it becomes. In consideration of this, we believe we should be as welcoming as possible to anyone — regardless of their level of experience.

We have written this article with the assumption that readers have no prior experience with programming, blockchain technology, artificial intelligence, or cloud computing.

We have designed the process below to be precise and very easy to follow. We intend to support you through your journey by answering questions and tailoring solutions to anyone that needs them.

To link up with other people working or have worked through this exercise, we invite you to join us on the SingularityNET forum.

What This Article Will Cover

Throughout this article, you will:

  • Understand functionalities and concepts related to the use of the SingularityNET Dapp;
  • Install, configure, and use Metamask;
  • Create a GitHub account to access faucets (in case you want to use the Ropsten testnet);
  • Interact with the Ropsten and AGI Faucets in case you want to use the DApp in Test Net Mode;
  • Deposit tokens to the SingularityNET platform using the MultiParty Escrow function;
  • Use an AI service, get a response, and leave feedback as a vote.

Getting Started

By accessing beta.singularitynet.io without MetaMask installed, you will see the screen below.

You can view a sample list of the services by clicking on “View Services,” but in order to use the platform, you need to connect to the SingularityNET Marketplace with your Metamask wallet.

Let’s briefly cover core concepts and processes such as the use of Metamask, the Ethereum Ropsten Network, the Ethereum Main Network, the Ropsten and Test Net AGI Faucets, and other topics you will need in order to test the platform. We will conclude by calling a service in this tutorial.

MetaMask

MetaMask is an internet browser extension that allows market participants to interact with the Ethereum blockchain and its decentralized applications. MetaMask serves as your access portal for both the Ropsten and Ethereum Main Net throughout this guide.

NOTE: Use the SingularityNET Marketplace in Main Net Mode whenever you want to integrate an AI service into your software. Use the SingularityNET Marketplace in Ropsten Mode whenever you want to test the platform as a developer. Do not integrate AI services from the Ropsten Network in your software, as their continuous availability is not guaranteed.

Ethereum Networks

Deploying decentralized applications on the Ethereum main network requires the use of real Ethereum coins. Real Ethereum coins are valuable. Developers want to test their software before launching on the Ethereum main network to minimize catastrophic consequences arising from oversights in coding. Thus, the Ethereum Test Networks allow developers to simulate how their DApps would perform, before launching in a more risky situation.

SingularityNET previously used the Kovan and Ropsten network for the Alpha and Beta Test Net version of our platform, but we will now be switching to the Ethereum Main Network. The Ropsten version of the marketplace will still be accessible for now for testing purposes but may be disabled in the future. The Ropsten network works with PoW (proof-of-work) and is more similar to the environment used in Ethereum’s Main Network. The Kovan Network will completely be disabled.

When using the SingularityNET Platform on the Ethereum Main Network you will need Main Network Ether and AGI. If you are trying out the platform in the Ropsten Test Network mode you will need some Ethereum and AGI from a Ropsten faucet (described below).

You can skip the “Ropsten Test Network Only” sections if you are not planning on using the Ropsten Test Network

Ethereum Faucet (Ropsten Test Network Only)

Ethereum Ropsten coins are free to claim and can beused to test the platform. In our case, we will need Ropsten Ethereum to cover the Gas costs associated with transactions on the platform. Users are required to visit a ropsten faucet, which is a per-request Ropsten Ethereum distribution hub. Users provide their Ropsten Ethereum wallet address from Metamask to the faucet and it issues a set amount of Ropsten Ethereum to the requesting wallet.

AGI Faucet (Ropsten Test Network Only)

In order to have Ropsten AGI to test the platform, users are required to visit the AGI Faucet, which is a per-request Ropsten AGI distribution hub. In this case, users provide their Ropsten Ethereum wallet addresses to the Faucet, and a set amount of Ropsten AGI will be transferred to the requesting wallet. In order to receive these tokens, the user must log in via GitHub to access the AGI Ropsten Faucet.

GitHub (Ropsten Test Network Only)

GitHub is the industry-leading software development platform for open source and private software projects. If you already have a GitHub account you can use it, otherwise, you are required to register in order to request and receive Ropsten AGI tokens.

Did you know we have more than 70 repositories on our GitHub that you can follow? We recommend you to check out and follow the SingularityNET DApp, SingularityNET CLI, and SingularityNET Daemon repositories.

Multi Party Escrow

The Multi Party Escrow is a simple wallet with a deposit and withdrawal function coupled with a locking feature that only releases transaction funds after the expiry block number. It supports unidirectional payment channels between clients and service providers.

The sender creates a payment channel with a given expiration block number and funds it with a desired amount of tokens. Each time the sender needs to send tokens to the recipient, a signed authorization has to be issued by the sender.

The recipient can claim the used tokens from the channel at any time, and in the future, it will be possible to extend the channel expiration block number. Of course, it is better for the recipient to close the channel with the last authorization (with the highest amount). The recipient will be sent that amount, and the remainder will go back to the sender.

The sender can claim the unused funds after the expiration date and not before the expiration date. Once tokens have been added to a channel by the sender, they are locked till the expiry of the channel.

Reputation

During the Beta, an AI service’s reputation will be managed via voting. Later on, a reputation algorithm — currently in development — will be implemented for more robustness. For now, users can only vote on a service once they have used it, and this can only be done once by any user by signing a free transaction to the blockchain. The voting information is visible on the home page of the platform so that other users can list the best performing services.

SingularityNET Marketplace Tutorial

Please skip step 5–15 if you are not planning on using the Ropsten Test Network. These steps are not needed for the Main Network.

1) Install the MetaMask browser on Chrome by clicking here

2) Access MetaMask via the Chrome Applications list on the browser

Find it on the top right of your browser bar.

3) Create a MetaMask password and account

Creating a Metamask account.
Creating a strong password for our Metamask account.

4) Store the seed phrase from MetaMask somewhere safe

The seed phrase is like a pin code to your Metamask account. Never ever give it out to someone. We are showing it above as a demonstration, but it is a throw-away account for us. Never show this seed phrase to anyone.

5) Go to GitHub and create a username and register an account. This will be needed to ask for Ropsten AGI test tokens. If you already have an account jump to step 8.

GitHub — Registration process

6) Provide information for GitHub for a customized experience.

GitHub — Registration process

7) Select the free service tier and click continue. Your account is now created!

GitHub — Registration process

8) Open MetaMask and select the Ropsten Test Network.

Selecting the Ropsten Test Network. Please make sure it is on Main Ethereum Network in case you plan to use the Main Net in this tutorial.

9) Hover your account name and copy the Ropsten Ethereum address to the clipboard.

Copying our Ropsten address.

10) Go to the Ropsten Ethereum Faucet, paste your address and ask for some Ropsten Ether.

Claiming Ropsten Ether from the Ropsten Faucet.

11) Doing this issues a transaction, once it is completed you will be able to open your MetaMask and see the value Ropsten Ether received from the Faucet.

We have some Ropsten Ether on our Ropsten Metamask address.

12) Now go to the AGI Faucet to ask for Ropsten AGI, click “Login”.

The AGI Test Net faucet — on this shot we are asked to authorize ourselves with our Github account.

13) Authorize the AGI Faucet to access GitHub.

Authorizing the AGI Token Faucet to access your Github account.

14) Paste the address in the AGI Faucet and click “SUBMIT”.

The AGI Test Net faucet — on this shot Ropsten AGI is claimed.

15) Once the transaction is completed you will receive AGI in your Ropsten Ethereum Wallet, and you can check it by visiting the Account Page, or on MetaMask by adding a custom token with the AGI contract information.

Your account page on the SingularityNET Marketplace.

16) Now you can make use of the MultiParty Escrow function by proceeding with a deposit. Input an amount of AGI and click “Deposit” — you will be prompted with a MetaMask window asking you to verify this transaction. This is a two-step confirmation process, so make sure to accept both pop-ups.

Granting permission to the Escrow contract to take up to 5 tokens.
Authorizing the tokens for Escrow.

17) You just made a deposit to the escrow contract, this is how your Account Page should look like. Click “Home” to get back to the list of services.

A shot of the “Account” page on the SingularityNET Marketplace.

18) Now let’s try one of the services by clicking on “Details”.

An overview of the current services on the SingularityNET Marketplace.

19) The “Current Price” or “Amount” is a value set by the service provider that translates to how much the service call will cost in AGI. The “Expiry Block Number” is the number of Ethereum blocks from which this transaction will be outdated and the remaining funds will come back to the sender’s address, and this threshold is also set by developers. In general, agents will only accept your request if the expiry block number is at least a full day ahead of the current block number. To start interacting with the service click “Start Job”.

On the right, you will find your UI to interact with a service.

20) You will be able to edit the Expiry Block Number to a value you feel comfortable with. Proceed to the “INVOKE” section by clicking “Reserve Funds” and confirm the transaction through the MetaMask pop-up.

On the right, you will find your UI to interact with a service.

21) The INVOKE section is defined by developers and it shows some fields you need to fill in order to interact with the service. In this case we are using the CNTK Image Recognition service, you should select the Service and Method names you want to use, and lastly, enter an image URL to be analyzed by the service. You can also click on “GUIDE”, “CODE” and “REFERENCE” to have more information about this service. Once you completed this form, click on “Invoke” and sign the transaction through MetaMask to get the results from the call.

On the right, you will find your UI to interact with a service.

22) The RESULT section shows you the response and data from the AI service in JSON format. In this section, the user can also use their blockchain signature to make a vote on the service by using the thumbs up or down icons. The user can also change their vote.

On the right, you will find your UI to interact with a service.
Zoomed in shot of the results section.

23) To check expired payment channels from which unused tokens can be claimed back, visit your Account Page.

An overview of the payment channels on the Account page.

In case you would like to get help with the beta, please visit our Dev Telegram via https://t.me/AGIDevelopers.

--

--