From 5d7925f8eb08b99639578551cb3dae634b0dcc1c Mon Sep 17 00:00:00 2001 From: Mudassir Shabbir Date: Fri, 21 Jun 2024 20:01:06 +0500 Subject: [PATCH] docs: adding orchestration docs index.md file --- main/guides/orchestration/index.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 main/guides/orchestration/index.md diff --git a/main/guides/orchestration/index.md b/main/guides/orchestration/index.md new file mode 100644 index 000000000..113945f8c --- /dev/null +++ b/main/guides/orchestration/index.md @@ -0,0 +1,19 @@ +# Orchestration Overview + + +Orchestration is a core concept within the Agoric platform designed to empower entrepreneurs. It enables the creation of smart contracts that seamlessly interact with applications deployed on various blockchains. This composability allows for the development of user-centric applications that leverage the unique strengths of different blockchain ecosystems. +The Agoric Orchestration API simplifies interactions between multiple networks, particularly those using the Inter-Blockchain Communication (IBC) protocol within Cosmos. The API acts as an abstraction layer, streamlining multi-step processes while maintaining requestor authority. Smart contracts involved gain no additional privileges. +Orchestration integrates with existing Agoric components (SwingSet, Cosmos modules) and introduces the vat-orchestration vat. This vat manages Inter-Chain Account (ICA) identities and connections to host chains, ensuring proper transaction authorization. +The orchestration client handles asynchronous tasks and complex workflows, including those spanning multiple chains. This empowers smart contracts for actions like inter-chain staking and multi-hop transfers, facilitated by notifications from the transfer vat and IBC middleware updates. Orchestration simplifies complex cross-chain interactions within a secure and user-controlled environment on the Agoric platform. + + +## Example API Usage + +```javascript +const amount = coins(100, 'utia'); +const celestiaChain = E(orchestration).getChain('celestia'); +const icaCelestia = await E(celestiaChain).createAccount(); +await E(icaOsmosis).send(icaCelestia.receiver, amount); +await E(timerService).delay(6000n); +return E(icaCelestia).delegate(amount, celestiaValidator); +```