Skip to content

Commit

Permalink
docs: adding orchestration docs index.md file
Browse files Browse the repository at this point in the history
  • Loading branch information
amessbee committed Jun 21, 2024
1 parent ac2383c commit 5d7925f
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions main/guides/orchestration/index.md
Original file line number Diff line number Diff line change
@@ -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);
```

0 comments on commit 5d7925f

Please sign in to comment.