Exploring MuonApps: Inherently Chain-Agnostic Oracle Apps

MuonApps, a solution to the ubiquitous challenges of interoperability

Robert Wallace
Muon
3 min readJun 25, 2024

--

In a previous article, we described how Pion network is expanding web3 boundaries through its Combo Contracts — a remodeled form of smart contracts that enables combining on-chain infrastructure with off-chain data and computation. Here is the second article in the series describing Pion’s innovative features.

MuonApps

Blockchains need data from off-chain sources; that is, they need to get data from other chains or sources out of the blockchain ecosystem. But they are isolated by design and interoperability has long been a challenge in web3.

To get various off-chain data, decentralized apps (dapps) need an extra component called an oracle. Unfortunately, manipulated data feeds provided by oracles have brought about major attacks in web3. That is why many platforms still depend on centralized data sources.

A MuonApp refers to an oracle app that runs on the Pion network and generates reliable output that can be fed to a smart contract securely. So instead of developing their own apps or dependending on centralized exercises, projects can develop their oracle functions as MuonApps. Leveraging Combo Contracts and Pion’s multi-layer security architecture, a MuonApp not only provides dapps with reliable data feeds, it also simplifies the development of smart contracts by taking over the execution of complex operations.

Chain-Independence

A significant aspect of MuonApps is that they can easily be used on different EVM and non-EVM chains. That is because Schnorr TSS signatures generated by the Pion network are quite simple and can be verified on all chains. (See here & here to learn more about Schnorr TSS signatures). Moreover, as running the on-chain part of the transaction is not on the Pion side, users can run them from any chain.

Deploying a MuonApp

When a MuonApp is deployed on Pion, a unique appId — a uint256 ID like the contract address on blockchains — and a Schnorr public key are dedicated to it. The MuonApp’s appId and publicKey are saved on the smart contracts on the chains or on off-chain databases.

A subnet of nodes is randomly selected and assigned to the app for a predefined period. Its private key is distributed among these nodes which should collaborate together to sign the transactions.

To get signatures for different functions of a MuonApp, users/services send data requests to the Pion network. The data along with signatures are pushed to the chain by users or project services. The appId and Private key are saved on the chain and the signature can then be verified.

Sample App Deployment

Here you can see how a sample app is deployed on Pion.

{
"appName": "simple_oracle",
"appId":
"55248038324285368712633359989377918216711324138169494581107010692219814301235",

"publicKey":{
"address":"0xb62c40dB7885D74CfdEc65BC04cD31740Eb64508",
"X":"0x3e5f3e1b07a7e5e5776afadee790cec6385263c90d7dbac23371b1b827cff548",
"yParity":"0"}

}

You can refer to Pion Explorer to see how BrightID and DeRand MuonApps are deployed on Pion.

MuonApps present an innovative solution to the challenge of interoperability in web3. We are going to publish more details on apps currently deployed on Pion soon. Stay tuned for more updates.

Pion is the Muon ecosystem’s Canary and first mainnet. It is a chain-independent and stateless DON (Decentralized Oracle Network) that enables dApps to make their off-chain components decentralized. By incorporating Pion (by Muon), the manner in which decentralized applications store, process, and access data will be fundamentally transformed.

Run a Pion node.

Twitter | Telegram | Discord | Website | Medium | GitBook | Developer’s Guide

--

--