Introduction to INOVA

INOVA is a decentralized investment platform built on the Solana blockchain that aims to bridge the gap between innovative projects and potential investors while promoting social impact.

INOVA utilizes the speed and efficiency of the Solana blockchain to create a seamless investment experience. Our platform enables projects to raise funds, investors to discover promising opportunities, and communities to thrive through decentralized governance.

This documentation provides comprehensive information for developers, project creators, and investors looking to integrate with or participate in the INOVA ecosystem.

For Developers

Learn how to integrate with INOVA using our SDK and APIs. Build applications that leverage our smart contracts.

Explore developer docs

For Users

Understand how to use INOVA to invest in projects, participate in governance, and collect rewards.

Get started

Getting Started

This section will guide you through the basic steps to get started with INOVA, whether you're a developer, project owner, or investor.

Prerequisites

  • A Solana wallet (Phantom, Solflare, or any Solana-compatible wallet)
  • Some SOL for transaction fees
  • Basic understanding of decentralized applications

Quick Start

1

Connect your Solana wallet to the INOVA platform

2

Explore active investment opportunities in the marketplace

3

Select a project and determine your investment amount

4

Confirm the transaction using your wallet

5

Receive INOVA investment tokens representing your stake

Installation

This section covers how to install and set up the INOVA SDK and tools for your development environment.

INOVA SDK

Our SDK provides a simple way to interact with the INOVA protocol from your JavaScript/TypeScript applications.

npm install @inova/sdk
yarn add @inova/sdk

Basic Usage

import { InovaClient } from '@inova/sdk';

// Initialize the client
const inova = new InovaClient({
  network: 'mainnet', // or 'devnet' for testing
  endpoint: 'https://api.mainnet-beta.solana.com',
});

// Connect to a wallet
await inova.connectWallet();

// Get active investment opportunities
const projects = await inova.getProjects();

// Invest in a project
const txSignature = await inova.invest({
  projectId: 'project123',
  amount: 1.5, // SOL
});

console.log('Transaction successful:', txSignature);

Core Concepts

Understanding the core concepts of INOVA will help you build better integrations and make informed decisions when using the platform.

Investment Pools

Investment pools are smart contracts that hold funds dedicated to specific projects or categories. Each pool has unique parameters like funding goals, time limits, and reward structures.

INOVA Tokens

INOVA tokens represent governance rights on the platform. Token holders can vote on platform upgrades, fee structures, and which projects get featured on the marketplace.

Project Tokens

When you invest in a project, you receive project-specific tokens that represent your stake. These tokens may entitle you to rewards, revenue sharing, or other benefits defined by the project.

Decentralized Governance

Decisions on the INOVA platform are made through community voting. Proposals are submitted, discussed, and then put to a vote where token holders decide the outcome.

Smart Contracts

INOVA's functionality is built on a system of smart contracts deployed on the Solana blockchain. This section covers the main contracts and how they interact.

Contract Architecture

  • InovaRegistry: Central registry that tracks all projects, investors, and investment pools.
  • InvestmentPool: Manages funds for specific projects, handles deposits and withdrawals.
  • ProjectToken: SPL token contract for project-specific investment tokens.
  • Governance: Handles proposal creation, voting, and execution of approved changes.
  • Marketplace: Facilitates discovery and interaction with available investment opportunities.

Contract Addresses

ContractMainnetDevnet
InovaRegistryAbc123...def456Xyz789...uvw321
InvestmentPoolGhi456...jkl789Lmn123...opq456
ProjectTokenRst789...uvw123Efg456...hij789
GovernanceKlm123...nop456Qrs789...tuv123
MarketplaceWxy456...zab789Cde123...fgh456

Interacting with Contracts

// Example: Interact with the Investment Pool contract
import { Connection, PublicKey } from '@solana/web3.js';
import { InovaSDK } from '@inova/sdk';

// Create a connection to the Solana cluster
const connection = new Connection('https://api.mainnet-beta.solana.com');

// Initialize the SDK
const inovaSDK = new InovaSDK(connection);

// Investment Pool public key
const poolAddress = new PublicKey('Ghi456...jkl789');

// Get pool information
const poolInfo = await inovaSDK.getPoolInfo(poolAddress);
console.log('Pool info:', poolInfo);

// Invest in the pool
const investmentAmount = 2.5; // SOL
const txSignature = await inovaSDK.invest(poolAddress, investmentAmount);
console.log('Investment successful:', txSignature);

Security

Security is a top priority for INOVA. This section outlines our security measures and best practices for users and developers.

Audit Reports

All INOVA smart contracts have undergone rigorous security audits by leading blockchain security firms. The full audit reports are available for review.

Security Features

  • Multi-signature wallet requirements for project withdrawals
  • Time-locked funds to prevent immediate drainage
  • Circuit breakers to pause the system in case of detected anomalies
  • Governance approval for critical parameter updates
  • Formal verification of critical contract functions

Configuration

Configure the INOVA SDK and tools to suit your specific requirements and environment.

SDK Configuration Options

// Full configuration options
const config = {
  // Network settings
  network: 'mainnet', // 'mainnet', 'devnet', 'testnet', or 'localnet'
  endpoint: 'https://api.mainnet-beta.solana.com', // Custom RPC endpoint
  
  // Transaction settings
  commitment: 'confirmed', // 'processed', 'confirmed', or 'finalized'
  preflightCommitment: 'processed',
  
  // Timeout settings (in milliseconds)
  txTimeout: 30000,
  confirmTimeout: 60000,
  
  // Fee settings
  priorityFee: 'auto', // 'auto', 'low', 'medium', 'high', or a specific number
  
  // Cache settings
  cacheEnabled: true,
  cacheTTL: 60000, // milliseconds
  
  // Logging
  logLevel: 'warn', // 'debug', 'info', 'warn', 'error', or 'none'
};

const inova = new InovaClient(config);

API Reference

This section provides detailed information about the API endpoints and methods available in the INOVA SDK.

Core Methods

connect()

Connects to a Solana wallet and initializes the client.

Example:

await inova.connect();

getProjects(filters)

Retrieves a list of investment projects based on optional filters.

Parameters:

  • filters (optional): Object containing filter criteria

Example:

const projects = await inova.getProjects({
  category: 'defi',
  status: 'active',
  minTarget: 100,
});

invest(options)

Invests in a project by sending funds to its investment pool.

Parameters:

  • options.projectId (required): ID of the project to invest in
  • options.amount (required): Amount to invest in SOL
  • options.referrer (optional): Referrer's public key

Example:

const txSignature = await inova.invest({
  projectId: 'project123',
  amount: 2.5,
});

For a complete reference of all available methods and options, visit ourAPI documentation repository.

Need more help? Join our Discord community orsubmit an issue on GitHub.