Ontology Developer Center
DISCOVERCOMMUNITYSUPPORT
  • Introduction
  • Discover Ontology
  • Getting Started
  • Glossary
  • Decentralized Identity and Data
    • ONT ID
      • Decentralized Identifiers
        • Method Specification for Ontology
        • Method Specification for Ethereum
        • Method Specification for BSC
      • Verifiable Credentials
        • Anonymous Credentials
      • ONT Login
        • Scenarios
        • Protocol Specification
        • Front-end JavaScript SDK
          • Integration and Usage
          • API Reference
        • Front-end UI SDK
          • Integration and Usage
          • API Reference
        • Back-end Go SDK
          • Integration and Usage
          • API Reference
        • Back-end Java SDK
          • Integration and Usage
          • API Reference
      • ONT TAG
        • Workflow
        • API Reference
      • Mercury
      • OScore
    • DDXF
      • Components and Interfaces
      • GREP
      • Overall Scheme
      • Solutions
        • Marketplace
          • Deployment
          • Scenarios
          • SaaS Tenant
          • Java SDK
        • Data Storage
          • Deployment
          • Java SDK
        • Resource Auditor
        • Offline Judge
      • Use Cases
        • E-Shops
  • ONTOLOGY ELEMENTS
    • Smart Contracts
      • Types of smart contracts
    • Token Protocols
    • Consensus Mechanism
    • Ontology Oracle
      • Oracle Process Flow
  • GUIDES & TUTORIALS
    • Development Guides
      • dApp Development
        • Using the dAPI
        • Data Synchronization
      • Smart Contract Development
        • EVM Contract
          • Development Environment and Tools
          • Wallet Setup
          • Contract Development
          • How to Deploy a Smart Contract with GetBlock
        • NeoVM Contract
          • Development tools and environment
          • Launching the IDE
          • Writing and editing program logic
          • Deploying and testing on private net
        • WASM Contract
          • Development Environment
          • Project Initiation - Hello World
          • Creating your own project
          • Development using SmartX
          • Runtime API
          • Contract Fundamentals
          • Inter-contract Interaction
          • Developing Contracts in C++
        • Publish Contract Source Code
    • Integration Guides
      • dApp Integration
        • dAPI Integration
          • Chrome Plugin
          • Mobile wallet dApp
          • QR code mechanism
          • Wake call mechanism
        • Cocos 2D-x
        • Unity 3D applications
      • Mobile Wallet Integration
        • SDK integration
        • dAPI Integration
          • In-wallet applications
          • QR code mechanism
          • Wake call mechanism
        • Stake
      • Using ONT ID
      • Exchange Integration
        • Exchange Docking Guide
        • Exchange API
      • Ontology for dApp Stores
    • EVM & Token Decimals Upgrade
  • ONTOLOGY NODE
    • Abstract
    • Node Deployment
      • Standard Node
      • Rosetta Node
    • Interacting with a Public Node
  • DEVELOPER TOOLS
    • dApp Development Framework
      • Punica CLI
      • Punica boxes
      • Solo Chain
    • IDE
    • APIs
      • HTTP API
        • Restful
        • WebSocket
        • Remote Procedure Call (RPC)
      • Explorer v2 API
        • Block
        • Address
        • Contract
        • Token
        • Transactions
        • ONT ID
        • Summary
        • Node
      • Native Token API
        • ONT Contract API
        • ONG Contract API
      • ONT ID Contract API
      • Web3 API
      • OScore Open API
      • Rosetta Node API
        • Data API
        • Construction API
      • DToken Contract API
      • DDXF
        • Marketplace Contract API
        • Storage API
      • Governance API
    • Digital Wallet
      • Chrome Plugin provider
      • Chrome Plugin dAPI
      • Mobile version provider
      • Mobile version dAPI
    • SDKs
    • Signing Server
      • Installation
      • API reference
  • COMMUNITY
    • Ecosystem Programs
    • Community Libraries
    • Community Events
    • Community Channels
    • Core Contributors
  • SUPPORT
    • FAQ
      • Basic blockchain concepts
      • Ontology Nodes
      • Ontology token protocols
      • Smart contracts
      • SDKs and APIs
    • Contact Us
Powered by GitBook
On this page

Was this helpful?

  1. GUIDES & TUTORIALS
  2. Development Guides
  3. Smart Contract Development
  4. NeoVM Contract

Development tools and environment

Tools required to start developing contracts

PreviousNeoVM ContractNextLaunching the IDE

Last updated 3 years ago

Was this helpful?

Before we start with the actual development process, we need to ensure that we have the required tools at hand.

The following are the essentials that will be at the core of the development process of smart contracts using Ontology:

  • SmartX - Ontology's online smart contract IDE and debugger

  • Cyano wallet - Google Chrome extension

  • Explorer - Web based public tool used to track blockchain activity and transactions in general

Setting up the development environment can be a complicated and time-consuming process. That is the reason why we have tried to make this step as swift and convenient as possible. The tools are web based and are practically ready to use right away.

Firstly, for the sake of simplicity and convenience, we will be testing the contracts we develop on the test net, thereby eliminating the need of a private chain. A private blockchain network architecture can be set up just as easily on your local environment using Ontology's Punica suite, a set of development tools that allows for smart contract deployment and testing on the private net. Follow link for more details.

The first tool that we need is a web browser. We recommend using for the entire process as Cyano wallet is a Chrome plugin.

Next, we need to install the Cyano wallet plugin in the browser. You can search "Cyano Wallet" in the Chrome store, or follow link.

Once the installation completes and you launch the wallet for the first time, you will be prompted to login.

In case you already have a Cyano account, you can choose to login using your private key and mnemonics phrase.

If not, register a fresh account and proceed. Ensure that you save the private key and the mnemonics phrase in a secure location.

Once logged in, export the wallet to an external .dat file. This can be done by accessing settings by clicking on the cog in the top right corner. Ensure that it is stored securely. We will use this file later to work with SmartX.

Ensure that you change the network setting to TEST-NET, since we will be deploying and testing our logic on the test net.

The IDE that we will be using is Ontology's SmartX, a browser-based development environment that supports Python, C#, and JavaScript(coming soon). We are going to take an in-depth look at the development process using Python, as far as this tutorial is concerned.

NeoVM serves as the execution engine for the programs written using Python in SmartX. The SmartX core integrates all of Ontology's APIs, and so all the different functions which allow us to perform blockchain related tasks can be used directly by importing the relevant API, which we will be discussing later.

Note: Deploying and testing smart contracts on the test net can be carried out without a MainNet ONT/ONG balance. But, to pay the gas cast of deploying a contract on the TestNet, you will still need a nominal TestNet ONG balance. The gas cost is calculated by taking the product of gas price and gas limit (gas price * gas limit). Test tokens can be applied for by following link.

Explorer is an online web based tool that can be used to track transaction and event related blockchain activity. It can be used to monitor both the TestNet and the MainNet using transaction hashes, ONT IDs, contract addresses, and even block height. It can be accessed by following link.

this
this
this
Google Chrome
this
SmartX main page
Ontology Explorer main page