KiiChain
  • Learn
    • What is KiiChain?
    • KiiChain
      • Vision of KiiChain
      • The Problems We Solve
      • Use Cases
      • Roadmap
      • Whitepaper
      • Business Model
    • Tokenomics
      • Intro Coin Details
      • Coin Unlocking Schedule
      • Utility
      • Evergreen Model
    • Getting Started
      • Get a Wallet
      • Download a Mobile Wallet
      • Set Up a Web Wallet
      • Connect Wallet to Explorer App
  • BUILD ON KIICHAIN
    • Developer Hub
    • Testnet Oro
    • Endpoints - Cosmos
      • EVM
        • VM
        • ERC20
        • FeeMarket
      • IBC
      • Kiichain
        • TokenFactory
      • Cosmwasm
      • Cosmos
        • Auth
        • Authz
        • Bank
        • Tendermint
        • Consensus
        • Distribution
        • Evidence
        • Feegrant
        • Gov
        • Slashing
        • Staking
        • Tx
        • Upgrade
    • Developer Tools
      • RWA Protocol
      • Rust SDK
      • JS/TS SDK
        • Kiijs-evm
        • Kiijs-proto
      • Deploy a smart contract
      • Deploy a dApp
      • Testnet faucet
    • Smart Contracts
    • Modules
      • TokenFactory
      • EVM
  • Validate the Network
    • Getting Started
      • What is a delegator?
      • What is a validator?
    • Run a Validator / Full Node
      • Getting started
      • Step-by-Step Guide
        • Becoming a Validator
        • Recovering Legacy Addresses
      • Maintaining a validator
      • Incentive
      • Technical requirements
      • Validator Security
    • Economics
      • Staking Requirements
      • Delegation / Staking
      • Rewards
      • Block Rewards Formula
      • APR
    • Delegator Information
      • Choosing a validator
      • Directives of delegators
      • Incentive to stake
      • Security considerations
      • Risks to consider
  • KII AMBASSADORS
    • What does it mean to be a KiiAmbassador?
    • Your Core Responsibilities
    • Participation Perks
    • Points System & Performance
    • How to lose the Role
    • Evaluation Process
  • KIIEX
    • Set Up KIIEX Account
      • Contact OTC Desk
    • Connect to KIIEX APIs
      • Introduction
        • New endpoints
        • Revised calls
        • Behavior Changes
        • Revised Calls 3.5.0
      • Background Information
        • Message Frame
        • Standard Response Objects and Common Error Codes
        • Modules
        • Users, Accounts, and Permissions
        • Products and Instruments
        • Quotes and Orders
        • Time– and Date-Stamp Formats
        • The Trading Day
      • Users
        • Activate2FA
        • AddUserAffiliateTag
        • Authenticate2FA
        • AuthenticateUser
        • CancelUserReport
        • GetAllUnredactedUserConfigsForUser
        • GetL2Snapshot
        • GetLevel1
        • GetUnredactedUserConfigByKey
        • GetUserAccountInfos
        • GetUserAccounts
        • GetUserAffiliateCount
        • GetUserAfilliateTag
        • GetUserConfig
        • GetUserDevices
        • GetUserReportTickets
        • GetUserReportWriterResultRecords
        • GetValidate2FARequiredEndpoints
        • LogOut
        • RegisterNewDevice
        • SubscribeAccountEvents
        • SubscribeBlockTrades
        • SuscribeLevel1
        • SubscribeLevel2
        • SubscribeTicker
        • SubscribeTrades
        • UnsuscribeBlockTrades
        • UnsubscribeLevel1
        • UnsubscribeLevel2
        • UnsubscribeTicket
        • UnsuscribeTrades
        • UpdateUserAffiliateTag
        • Validate2FA
      • Accounts
        • GetAccountInfo
        • GenerateTransactionActivityReport
        • GenerateTradeActivityReport
        • GenerateTreasuryActivityReport
        • GetAllAccountConfigs
        • GetAccountPositions
        • GetTreasuryProductsForAccount
        • ScheduleTradeActivityReport
      • Trades
        • GetAccountTrades
        • GetAccountTransactions
        • GetAllOpenTradeReports
        • GetOpenTradeReports
        • GetTickerHistory
        • GetTradesHistory
      • OMS Orders
        • CancelAllOrders
        • CancelOrder
        • CancelQuote
        • CancelReplaceOrder
        • CreateQuote
        • GetOMSFeeTiers
        • GetOpenOrders
        • GetOpenQuotes
        • GetOrderFee
        • GetOrderHistory
        • GetOrderHistoryByOrderId
        • GetOrdersHistory
        • GetOrderStatus
        • ModifyOrder
        • SendOrder
        • SubmitBlockTrade
        • UpdateQuote
      • Products
        • GetProduct
        • GetProducts
      • Instruments
        • GetInstrument
        • GetInstruments
      • Tickets
        • CreateDepositTicket
        • CancelWithdraw
        • CreateWithdrawTicket
        • Deposit withdraw template
        • GetAccountDepositTransactions
        • GetAccountWithdrawTransactions
        • GetAllDepositRequestInfoTemplates
        • GetDeposits
        • GetDepositInfo
        • GetDepositTicket
        • GetDepositRequestInfoTemplate
        • GetOMSWithdrawFees
        • GetStandardTemplateExample
        • GetTetherRPCWithdrawTemplateExample
        • GetWithdrawFee
        • GetWithdraws
        • GetWithdrawTemplate
        • GetWithdrawTemplateTypes
        • GetWithdrawTicket
        • GetWithdrawTickets
        • SubmitDepositTicketComment
        • SubmitWithdrawTicketComment
      • Misc
        • Ping
Powered by GitBook
LogoLogo
On this page
  • Installation Steps
  • Current exchange rates fetched by the price feeder and handled by the Oracle module
  • References
Export as PDF
  1. Validate the Network
  2. Run a Validator / Full Node
  3. Step-by-Step Guide

Running the Price feeder

How to run your own Oracle and price feeder

Last updated 11 days ago

The Price Feeder is an essential component for validators added to Kiichain since version v4.0.0 to provide accurate cryptocurrency price data to the Kiichain network using the . Follow these steps to set it up:

Prerequisites

  • A running Kiichain validator node

  • At least 100000000ukii in your validator account for feeder delegation

Installation Steps

  1. Download the Setup Script

wget https://raw.githubusercontent.com/KiiChain/testnets/main/testnet_oro/run_price_feeder.sh
chmod +x run_price_feeder.sh
  1. Edit Configuration Variables

Open the script and modify these values at the top:

VALIDATOR_ACCOUNT_NAME="your_validator_account_name"  # Your validator key name
VALIDATOR_ADDRESS="kiivaloper1..."                   # Your validator operator address
KEYRING_PASSWORD="your_password"                     # Keyring password
KEYRING_BACKEND="os"                                 # use your preference
  1. Run the Installation

./run_price_feeder.sh

The script will automatically:

  • Build and install the price-feeder

  • Create a dedicated feeder account

  • Delegate price reporting rights

  • Fund the feeder account

  • Configure the systemd service

  1. Verify Operation

Check the service logs:

journalctl -fu price_feeder.service -n 100

Look for the following log with the success voting and broadcast process, should look as this example.

INF Going to broadcast vote exchange_rates=627.294973247184155604ubnb,
87373.053355393894624692ubtc,2026.187799244052648861ueth,
138.957568367835068788usol,0.999880568783958689uusdc

Important Note: Oracle Voting Performance Requirements

Validators running the Price Feeder must maintain a high success rate when submitting price votes. The Oracle module enforces this through a slashing mechanism:

  • MinValidPerWindow Parameter: This governance-defined threshold (5%) sets the minimum percentage of successful votes a validator must submit per voting window (3600 blocks).

  • Penalty for Underperformance: If a validator’s ratio of successful votes / total votes falls below MinValidPerWindow:

    • The validator is automatically jailed

    • It cannot participate in consensus or earn staking rewards

    • Manual unjailing requires a governance proposal or fixed downtime duration

  • Recommendations for Validators:

    • Monitor your feeder’s logs (journalctl -fu price_feeder.service)

    • Ensure stable API connections to price providers

    • Maintain sufficient gas fees for timely transactions

If you are using os as KEYRING_BACKEND make sure you have set the env variable PRICE_FEEDER_PASS with your keyring password. If not, the script run_price_feeder.sh will ask you to type your keyring password using the CLI.

Current exchange rates fetched by the price feeder and handled by the Oracle module

These are the prices stored on the blockchain (represented in USD).

  • $BTC

  • $ETC

  • $SOL

  • $XRP

  • $BNB

  • $USDT

  • $USDC

References

Oracle module
Oracle definition by Kii team
Oracle definition by Cosmos
Run the price feeder
Price feeder README
Oracle endpoints