diff --git a/docs/docs/concepts/definitions.md b/docs/docs/concepts/definitions.md index a04f32fee39..a725f2a16da 100644 --- a/docs/docs/concepts/definitions.md +++ b/docs/docs/concepts/definitions.md @@ -3,9 +3,6 @@ ### Actively Validated Services (AVSes) A project or protocol that needs distributed validation and acquires said validation via restaking. Examples of AVSes are middleware services, layer 2 networks, bridges, data layers, and dApps. -### Composable Virtual Machine (CVM) -An orchestration language and execution runtime for cross-chain program execution and intents settlement that operates, specifically over IBC. - ### Cross-Domain Maximal Extractible Value (MEV) The maximum value that can be captured from arbitrage transactions executed in a specified order across multiple domains. See: Maximal Extractible Value. @@ -24,7 +21,7 @@ Lightweight, trustless mechanisms for verifying the state of the counterparty bl ### Maximal Extractible Value (MEV) The maximal value extractable between one or more blocks, given any arbitrary re-ordering, insertion or censorship of pending or existing transactions (as defined by Obadia et al., 2021). -### Multichain-Agnostic Normalized Trust-Minimized Intent Settlement (MANTIS) +### Multichain-Agnostic Normalized Trust-Minimized Intent Settlement ([Mantis](https://mantis.app/)) A vertically integrated, optimized intents settlement framework with expression, execution, and settlement. ### Operators diff --git a/docs/docs/concepts/ibc.md b/docs/docs/concepts/ibc.md index 8bab6d8918d..701461ee2c4 100644 --- a/docs/docs/concepts/ibc.md +++ b/docs/docs/concepts/ibc.md @@ -98,7 +98,7 @@ The IBC protocol is maintained by the [Interchain Foundation](https://interchain Introduced in 2019, IBC was integrated into the Cosmos SDK in 2021. Presently, over 107 chains are interconnected, with IBC facilitating a volume of more than 5 billion USD as of December 2023, and [over 5 million token](https://mapofzones.com/home?columnKey=ibcVolume&period=24h) transfers between IBC-connected chains. These statistics underscore IBC's resilience over time and its ability to evolve its protocol to meet the needs of users and app-chains. Its widespread adoption and continued relevance within the Cosmos ecosystem have also garnered attention in the broader crypto community. -The requirements of implementing IBC are not restrictive in terms of the type of consensus algorithm, allowing it to connect various types of blockchains, such as those based on Cosmos typically powered by Tendermint/CometBFT, Ethereum-like networks, and Solana as well. Picasso's innovation is not limited to Cosmos but rather actively leveraging and extending the IBC protocol beyond Cosmos, pushing its boundaries beyond its original scope. **Picasso's approach involves establishing the IBC framework as the industry standard for cross-ecosystem communication.** +The requirements of implementing IBC are not restrictive in terms of the type of consensus algorithm, allowing it to connect various types of blockchains, such as those based on Cosmos typically powered by Tendermint/CometBFT, Ethereum-like networks, and Solana as well. Picasso's innovation is not limited to Cosmos but rather actively leveraging and extending the IBC protocol beyond Cosmos, pushing its boundaries beyond its original scope. **Picasso's approach involves [establishing the IBC framework as the industry standard](https://medium.com/@Picasso_Network/ibc-as-the-end-game-of-bridging-a-comparison-analysis-on-trust-dcc01e0d9377) for cross-ecosystem communication.** IBC supports asset transfers (fungible tokens, non-fungible tokens), generic message passing, cross-chain contract calls, cross-chain fee payments, interchain collateralization and more in a trust-minimized manner. The trust-minimized condition of IBC is due to the fact it is: diff --git a/docs/docs/develop/codespaces.md b/docs/docs/develop/codespaces.md index de3c84e5039..3076d100edc 100644 --- a/docs/docs/develop/codespaces.md +++ b/docs/docs/develop/codespaces.md @@ -16,5 +16,3 @@ This gives us the following advantages: uses the same dependencies that have been defined in code, and are identical to the ones used in our CI pipelines. - If you come up with an improvement to our development experience, you can open a PR for it and then the entire team - can take advantage of it. - -Let's [get started with Codespaces!](./codespaces/getting-started.md) diff --git a/docs/docs/develop/collator-guide.md b/docs/docs/develop/collator-guide.md index cb3e0ba3468..ac9794f5991 100644 --- a/docs/docs/develop/collator-guide.md +++ b/docs/docs/develop/collator-guide.md @@ -87,11 +87,7 @@ To see logs, run: sudo docker logs -f $(sudo docker ps |grep composable|awk '{print $1}') ``` -The latest version of the application can be found at [Docker hub] or [Composable releases]. - -[Docker hub]: https://hub.docker.com/r/composablefi/composable/tags - -[Composable releases]: (https://github.com/ComposableFi/composable/releases/) +The latest version of the application can be found at [Docker hub](https://hub.docker.com/r/composablefi/composable/tags) or [Composable releases](https://github.com/ComposableFi/composable/releases/). This configuration will pass the key into the Composable application at startup. Verify that it is being used by checking the log for: diff --git a/docs/docs/develop/cosmwasm-cli.md b/docs/docs/develop/cosmwasm-cli.md index f336e446fdf..7784a9d509b 100644 --- a/docs/docs/develop/cosmwasm-cli.md +++ b/docs/docs/develop/cosmwasm-cli.md @@ -3,7 +3,7 @@ Composable Cosmwasm CLI is a CLI tool to quickly get started with the ecosystem and interact with a chain that runs `pallet-cosmwasm`. In this guide, we will show you how to run the CLI on a local Picasso network and Picasso Rococo. :::info -Picasso Rococo is a testnet (test network) for [Picasso](../networks/picasso-parachain-overview.md). It allows developers to experiment, test runtime module deployment, and refine their applications to ensure the stability and compatibility of new features before deploying on Picasso mainnet by interacting with the [Rococo Relay Chain](https://polkadot.network/blog/rococo-revamp-becoming-a-community-parachain-testbed/). +Picasso Rococo is a testnet (test network) for Picasso. It allows developers to experiment, test runtime module deployment, and refine their applications to ensure the stability and compatibility of new features before deploying on Picasso mainnet by interacting with the [Rococo Relay Chain](https://polkadot.network/blog/rococo-revamp-becoming-a-community-parachain-testbed/). ::: ## Setting up the development environemnt diff --git a/docs/docs/develop/oracle-set-up-guide.md b/docs/docs/develop/oracle-set-up-guide.md deleted file mode 100644 index cdd7c5fcc2e..00000000000 --- a/docs/docs/develop/oracle-set-up-guide.md +++ /dev/null @@ -1,378 +0,0 @@ -# Apollo Oracle Set-up Guide - - -## Overview - -[Apollo](../technology/apollo-overview.md) is an oracle for submitting prices on-chain. -We plan to upgrade it and allow everyone to stream arbitrary third party data in the future. -By taking part in Apollo and becoming an oracle operator, -you will be securing the price of assets on-chain and help the network become more resilient in a decentralized manner. -Participants receive tokens as rewards for their work, -but it is important to note that the on-chain algorithm also allows for slashing based on bad behavior, -which is defined as submitting prices out of a certain threshold range from a pivot price calculated on all submitted prices. - -Apollo consists of four key components: - -- The On-chain pallet that decides when a price is requested. -- An Off-Chain worker that monitors when a price has been requested and if so, submits a price for the request. -- An oracle node where the offchain worker is running. -- A Price-Feed (we provide a reference implementation for this component) that fetches the prices from a CEX/DEX -and caches them, such that the Off-Chain worker is able to query those prices and stream them by submitting a transaction. You are open to use a price-feed of your choice. - -The following diagram provides a high-level architecture of how these three components interact with each other. - -## High level architecture - - -![oracle_architecture](./oracle-set-up-guide/oracle-architecture.jpg) - - -1. Apollo off-chain worker monitors on-chain price requests. -2. Once a price request for an asset has been detected, the off-chain worker does an http GET to the price-feed server and gets the latest price. -3. If and only if the latest cached price (on the price-feed server) is recent enough (in seconds, configurable via the price-feed CLI), the off-chain worker submits a transaction containing the asset price. - - -## Setting up a node - -[Setup a node by following the collator guide](../develop/collator-guide.md) - -## Using PolkadotJS Web Interface - -To see the block explorer of your collator and run extrinsics, the PolkadotJS web interface needs to be connected. - -* Go to polkadot js →[https://polkadot.js.org/apps/#/explorer](https://polkadot.js.org/apps/#/explorer) -* Add custom endpoint - -:::note -Connection should be established to the port 9988 of the IP address that is running your collator, for connecting to node running locally: ws://127.0.0.1:9988. -::: - -Make sure you have connected to the right port. - -![polkadotjs_web_interface](./oracle-set-up-guide/polkadotjs-web-interface.png) - -You should see the block explorer: - -![block_explorer](./oracle-set-up-guide/block-explorer.png) - -In this web UI we will run extrinsics & RPCs, to attach the price feed to the node. - -## Setting up the price feed (reference implementation) - -Composable provides a reference implementation for the price-feed server. It can be found - -at the following address, in the -[Composable GitHub repository](https://github.com/ComposableFi/composable/tree/main/utils/price-feed). -The implementation is general enough and allows any fork to implement a new feed easily. -By default, the prices are fetched from the -[Binance public websocket API](https://docs.binance.org/api-reference/dex-api/ws-streams.html#4-trades). - -### Setup - -In this step, we will set up a rust compiler, a toolchain and build a node. \ - \ -**Setup required libraries** - -Run the following command: - -```bash -sudo apt update && sudo apt install -y git clang curl libssl-dev llvm libudev-dev pkg-config protobuf-compiler libprotobuf-dev -``` - -**Get the project and build the price-feed** - -Run the following commands: - -```bash -git clone --depth 1 --branch release-v9.10035.5 https://github.com/ComposableFi/composable.git composable-oracle-10035 && \ -cd composable-oracle-10035/code && \ -cargo build --release --package price-feed -``` - -### Start Price-feed - -You can try running the server with \ - -```bash -RUST_LOG=debug ./target/release/price-feed -``` - -The server will start indexing a list of predefined assets (hardcoded). - -To make sure the price-feed is working correctly one should go to the browser. - -By default, price-feed runs on localhost, port 3001. - -Currently, the only assets supported for retrieving prices is KSM & DOT (corresponding to asset id's of 4 & 6 respectively), which can be accessed using the following link. - -KSM: [http://127.0.0.1:3001/price/4](http://127.0.0.1:3001/price/4) - -DOT: [http://127.0.0.1:3001/price/6](http://127.0.0.1:3001/price/6) - - -![price_feed_output](./oracle-set-up-guide/price-feed-output.png) - - -price-feed output should look like this. - -```markdown -[2022-06-09T19:08:25Z DEBUG price_feed::backend] notification received: Started { feed: Binance } -[2022-06-09T19:08:25Z INFO price_feed::backend] Binance started successfully -[2022-06-09T19:08:25Z DEBUG price_feed::backend] notification received: AssetOpened { feed: Binance, asset: KSM } -[2022-06-09T19:08:25Z INFO price_feed::backend] Binance has opened a channel for KSM -[2022-06-09T19:08:25Z DEBUG price_feed::feed::binance] connecting to binance -[2022-06-09T19:08:25Z DEBUG tungstenite::client] Trying to contact wss://stream.binance.com:9443/stream?streams=ksmusdt@aggTrade at 13.114.11.14:9443... -[2022-06-09T19:08:26Z DEBUG tungstenite::handshake::client] Client handshake done. -[2022-06-09T19:08:26Z DEBUG price_feed::feed::binance] running event loop -[2022-06-09T19:08:31Z DEBUG price_feed::backend] notification received: AssetPriceUpdated { feed: Binance, asset: KSM, price: TimeStamped { value: (Price(6659), Exponent(2)), timestamp: TimeStamp(1654801711) } } -[2022-06-09T19:08:36Z DEBUG price_feed::backend] notification received: AssetPriceUpdated { feed: Binance, asset: KSM, price: TimeStamped { value: (Price(6659), Exponent(2)), timestamp: TimeStamp(1654801716) } } -``` - -The default URL is: - -```markdown -localhost:3001/price/${ ASSET_ID }/ -``` - -### CLI Options - -Run the following command: - -```bash -./target/release/price-feed --help -``` - -For a list of CLI options. - - -```markdown -ubuntu@oracle-test:~/price_feed/target/release$ ./price-feed --help -price-feed 1.0 -Composable - -USAGE: - price-feed [OPTIONS] - -OPTIONS: - -c, --cache-duration - Duration, in seconds, before a price is evicted from the cache [default: 10] - - -e, --expected-exponent - Price will be normalized to this exponent [default: 12] - - -h, --help - Print help information - - -l, --listening-address - Listening address for the frontend [default: 127.0.0.1:3001] - - -p, --pythd-host - Host address of the pythd server [default: http://127.0.0.1:8910] - - -q, --quote-asset - Asset to be used as quote for pricing [default: USDT] - - -V, --version - Print version information -``` - -## Setting up Apollo (becoming an Oracle) - -In order for a Collator to become an Apollo Oracle, you need to make sure that you deployed a price-feed server along -your node. - -Once you have node and price-feed setup and running, the following steps will be required to bind your price-feed to the -node. - -These are the wallet details for the Alice developer wallet. - -It’s required for registering the offchain worker. - -```markdown -name: "Alice" -Address (public key): "5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL" -Mnemonic(seed): "bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice" -``` - -The following steps are required to complete the setup of becoming an oracle: - -1. Register price feed URL -2. Register offchain worker -3. Set signer (for local testing) -4. Create an oracle for the asset - -**Register price feed URL** - -Register your price-feed url in the local storage,` kind` must be **PERSISTENT**, the key is **ocw-url,** and the value -is **[http://localhost:3001/price/](http://my-price-feed.com/prices/)** - -JavaScript: - -```JavaScript -api.rpc.offchain.localStorageSet("PERSISTENT", stringToHex("ocw-url"), stringToHex("http://localhost:3001/price/")); -``` - -To do this go to: - -_Developer menu -> RPC calls -> offchain -> **localStorageSet**_ \ - - -![manual_register_price_feed](./oracle-set-up-guide/manual-register-price-feed.png) - - -**Register offchain worker** - -To do this go to: - -_Developer menu -> RPC calls -> author -> **insertKey**_ - -And enter the details above, as seen in the screenshot and press: “Submit RPC call”. - - -![register_offchain_worker](./oracle-set-up-guide/register-offchain-worker.png) - - -## Further Steps - -Once these steps are complete, send us your collator node's public key, controller key, and signer key. You must have at least 200k PICA on your controller address and then we can onboard you as a oracle which results in 200k PICA staked. To submit prices for 2 or more assets, you will need to stake an additional 1k PICA for each asset you provide an oracle for on your controller address. **To increase your stake, add more PICA to your controller addrress and call `oracle.addStake` extrinsic on PolkadotJS.** - - -:::tip -The distribution of rewards is based on the proportions of amount staked, therefore, the more PICA you stake, the more rewards you earn. -::: - -### Setting up DevNet Oracle - -For development mode, polkalaunch scripts should be used. - -It sets up a local network with 4 collators with predefined keys and addresses. - -**Setup required prerequisites** - -A **Debian** based Linux system is required, we recommend Debian, Ubuntu or Linux Mint. - -1. Set up required packages - -Run the following command: - - -```bash -sudo apt update && sudo apt install -y git clang curl libssl-dev llvm libudev-dev pkg-config wget -``` - -2. Setup Rust binary and Toolchain - -Run the following commands: - - -```bash -RUST_C="nightly-2021-11-07" -curl https://sh.rustup.rs -sSf | sh -s -- -y && \ -export PATH="$PATH:$HOME/.cargo/bin" && \ -rustup toolchain uninstall $(rustup toolchain list) && \ -rustup toolchain install $RUST_C && \ -rustup target add wasm32-unknown-unknown --toolchain $RUST_C && \ -rustup default $RUST_C && \ -rustup show -``` - -And wait for the installation process to finish. - -3. Setup Nodejs & Yarn - -Run the following commands: - -```bash -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \ -export NVM_DIR="$HOME/.nvm" && \ -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ -nvm install v16.15.0 && \ -nvm use v16.15.0 && \ -npm install --global yarn -``` - -**Run devnet** - -```bash -nix run .#devnet-picasso -``` - -This means your node has started. - -Nodes are writing logs here: - -```markdown -ubuntu@oracle-test:~/composable/scripts/polkadot-launch$ ls -9988.log 9997.log alice.log charlie.log composable_and_basilisk.json ferdie.log node_modules rococo-local-raw.json yarn.lock -9996.log README.md bob.log composable.json dave.log - -ubuntu@oracle-test:~/composable/scripts/polkadot-launch$ tail -f 9988.log -2022-05-23 10:23:24 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.4931640625kb, storage_proof: 5.80078125kb } -2022-05-23 10:23:24 [Parachain] Compressed PoV size: 7.423828125kb -2022-05-23 10:23:24 [Parachain] Produced proof-of-validity candidate. block_hash=0x67087d9d563ecbe2f13ab63d4280f003f80a4189be3f800c12adc82361463a2d -2022-05-23 10:23:25 [Relaychain] 💤 Idle (7 peers), best: #113 (0xb71b…7e30), finalized #110 (0x0ffc…245c), ⬇ 5.7kiB/s ⬆ 6.0kiB/s -2022-05-23 10:23:25 [Parachain] 💤 Idle (2 peers), best: #44 (0x88ff…32ad), finalized #42 (0xc49f…12c0), ⬇ 0.1kiB/s ⬆ 1.4kiB/s -2022-05-23 10:23:30 [Relaychain] ✨ Imported #114 (0x496f…c871) -2022-05-23 10:23:30 [Relaychain] ♻️ Reorg on #114,0x496f…c871 to #114,0x9970…5f18, common ancestor #113,0xb71b…7e30 -2022-05-23 10:23:30 [Relaychain] ✨ Imported #114 (0x9970…5f18) -2022-05-23 10:23:30 [Relaychain] 💤 Idle (7 peers), best: #114 (0x9970…5f18), finalized #110 (0x0ffc…245c), ⬇ 4.5kiB/s ⬆ 4.0kiB/s -2022-05-23 10:23:30 [Parachain] 💤 Idle (2 peers), best: #44 (0x88ff…32ad), finalized #42 (0xc49f…12c0), ⬇ 24 B/s ⬆ 24 B/s -2022-05-23 10:23:34 [Relaychain] 👴 Applying authority set change scheduled at block #111 -``` - -**Setting signer (for local testing)** - -Bond the controller account by submitting a set_signer transaction (tie the Signer to the Controller). This transaction -**must** be sent by the controller. The controller **must have the necessary bond amount** as it will be transferred to -the signer and put on hold (reserved). - -JavaScript: - -```JavaScript -api.tx.sudo.sudo(api.tx.oracle.setSigner(controller, signer)) -``` - -Setting the signer automatically adds a small amount of funds to the oracle stake of this wallet. These are required for -submitting prices. - -_Developer -> extrinsics -> Oracle -> setSinger_ - - -![manual_set_signer](./oracle-set-up-guide/manual-set-signer.png) - - -**Create oracle for asset** - -We can create an oracle for an asset by using the extrinsic _oracle.addAssetAndInfo(...)_ and calling it using -administrative rights. To call this extrinsic as an administrator go to: - -_Developer -> Sudo -> Oracle **-> addAssetAndInfo **_ - -**Parameters**: - -* assetId: 4 (DOT), 6 (KSM) -* threshold: 3% -* minAnswers: 7 -* maxAnswers: 12 -* blockInterval: 6 -* reward: 10000 -* slash: 1000000000000000 (1,000 PICA) - -![create_oracle_for_asset](./oracle-set-up-guide/create-oracle-for-asset.png) - - -![authorize_transaction](./oracle-set-up-guide/authorize-transaction.png) - - -After successfully following these steps, you should see the blockchain successfully getting prices submitted, every few -blocks. - - -![successful_price_submitted](./oracle-set-up-guide/successful-price-submitted.png) - - -____ - -External Link - -[Polkadotjs API](https://polkadot.js.org/docs/) diff --git a/docs/docs/develop/oracle-set-up-guide/authorize-transaction.png b/docs/docs/develop/oracle-set-up-guide/authorize-transaction.png deleted file mode 100644 index 009eb70d0f0..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/authorize-transaction.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f265dd207e86821867991d662d165f9c685662212cead569370b38618a744d28 -size 88845 diff --git a/docs/docs/develop/oracle-set-up-guide/block-explorer.png b/docs/docs/develop/oracle-set-up-guide/block-explorer.png deleted file mode 100644 index 65762987bbf..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/block-explorer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee17b9e07ce78b1abad97d67d304b70f7f43d910897cf39abbe6905e9fcd376c -size 341976 diff --git a/docs/docs/develop/oracle-set-up-guide/create-oracle-for-asset.png b/docs/docs/develop/oracle-set-up-guide/create-oracle-for-asset.png deleted file mode 100644 index 604998710d6..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/create-oracle-for-asset.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0e5841cc8fee9745841cc447e45f25929b3df663f80ddeef0dd78e7e0d19f5d -size 76538 diff --git a/docs/docs/develop/oracle-set-up-guide/manual-register-price-feed.png b/docs/docs/develop/oracle-set-up-guide/manual-register-price-feed.png deleted file mode 100644 index d4fb505dcf0..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/manual-register-price-feed.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ae22078ffb6a1aba6dafc34107a36e32c6fed3e58e1e4853b537f1f8b7b57384 -size 67282 diff --git a/docs/docs/develop/oracle-set-up-guide/manual-set-signer.png b/docs/docs/develop/oracle-set-up-guide/manual-set-signer.png deleted file mode 100644 index 7aae95df3b3..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/manual-set-signer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd7a37b8a000ec817665d8d2c2f5968bffa3b49933f8b664fafce27c2f266b10 -size 69625 diff --git a/docs/docs/develop/oracle-set-up-guide/oracle-architecture.jpg b/docs/docs/develop/oracle-set-up-guide/oracle-architecture.jpg deleted file mode 100644 index e95f7382e20..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/oracle-architecture.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5a29da644f630fb229729a00b1ebb90e659a4330c1825ff14ec85ffe658af7a -size 48466 diff --git a/docs/docs/develop/oracle-set-up-guide/polkadotjs-web-interface.png b/docs/docs/develop/oracle-set-up-guide/polkadotjs-web-interface.png deleted file mode 100644 index fbbaebf6754..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/polkadotjs-web-interface.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:412936a6f9f8c1ec8b18713c4b140bcbdc3743e97798f0c1398c75d1628ab8b6 -size 653447 diff --git a/docs/docs/develop/oracle-set-up-guide/price-feed-output.png b/docs/docs/develop/oracle-set-up-guide/price-feed-output.png deleted file mode 100644 index ecdef621d93..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/price-feed-output.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58d8742f1afc2dffdef6cda71bcc1da00ba881f58a6b2cd642ef7d470dfaa274 -size 12085 diff --git a/docs/docs/develop/oracle-set-up-guide/register-offchain-worker.png b/docs/docs/develop/oracle-set-up-guide/register-offchain-worker.png deleted file mode 100644 index 29f2836d8fc..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/register-offchain-worker.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56ec9507c0e5c7cf0c5fa99906a857d2f62989817730b80764173c0482c270e8 -size 60986 diff --git a/docs/docs/develop/oracle-set-up-guide/successful-price-submitted.png b/docs/docs/develop/oracle-set-up-guide/successful-price-submitted.png deleted file mode 100644 index 9eeb9063719..00000000000 --- a/docs/docs/develop/oracle-set-up-guide/successful-price-submitted.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd156914a77044a42ca59a46c7cfb0ac225f430c0b9b6946d63a4878e33a8575 -size 138928 diff --git a/docs/docs/develop/picasso.md b/docs/docs/develop/picasso.md index 9f7ba80717b..a15cb3482c0 100644 --- a/docs/docs/develop/picasso.md +++ b/docs/docs/develop/picasso.md @@ -7,7 +7,7 @@ - Binary: https://github.com/ComposableFi/composable-cosmos/releases/tag/v6.3.1 - Current version: v6.6.41 (check the repository for the latest release) - Public Notional endpoints: - - RPC: https://picasso-rpc.polkachu.com/ (1) https://api-composable-ia.cosmosia.notional.ventures (2) + - RPC: https://picasso-rpc.polkachu.com/ - Block Explorer: https://ping.pub/picasso (1) https://explorer.nodestake.top/composable/ (2) - IBC Channels: https://polkachu.com/ibcs?network=picasso diff --git a/docs/docs/faqs/terms-of-use.md b/docs/docs/faqs/terms-of-use.md index 17740ebeb1d..7970c02785c 100644 --- a/docs/docs/faqs/terms-of-use.md +++ b/docs/docs/faqs/terms-of-use.md @@ -3,7 +3,7 @@ As of January 18, 2023 These Terms of Use (“Terms”) constitute a binding and enforceable legal contract between Composable Foundation and its affiliates (“Composable,” “we,” “us,” or the “Company”) and you, an end user of the services (“you” or “User”) -at https://www.composable.finance, https://picasso.xyz, https://games.mantis.app/ and https://app.pablo.finance/ (the “Services”). +at https://www.composablefoundation.com/, https://www.picasso.network/, https://mantis.app/ and https://app.pablo.finance/ (the “Services”). These Terms also include any guidelines, announcements, additional terms, policies, and disclaimers made available or issued by us from time to time. By accessing, using or clicking on our website (and all related subdomains) or its mobile applications (the “Site”) or diff --git a/docs/docs/governance-&-token/opengov.md b/docs/docs/governance-&-token/opengov.md index a6560be3091..dd0a6278a5c 100644 --- a/docs/docs/governance-&-token/opengov.md +++ b/docs/docs/governance-&-token/opengov.md @@ -4,7 +4,7 @@ Governance mechanisms for Picasso Kusama are intended to ensure the growth and a [Picasso’s Polkassembly](https://picasso.polkassembly.io/opengov) will serve as a governance forum where open discussion about the future of Picasso Kusama can occur. Here, proposals can be refined based on community input. -Picasso Kusama OpenGov is live, a new era of decentralisation, allowing PICA holders to actively participate in governance and a new structure of collectives. PICA serves as the native token of Picasso Kusama and plays a vital role on the parachain. It is extensively used as a gas token and governance token [powered by OpenGov](../governance-%26-token/opengov.md). Additionally, PICA is a requirement for infrastructure providers who operate oracles and collators on the network. +Picasso Kusama OpenGov is live, a new era of decentralisation, allowing PICA holders to actively participate in governance and a new structure of collectives. PICA serves as the native token of Picasso Kusama and plays a vital role on the parachain. It is extensively used as a gas token and governance token powered by OpenGov. Additionally, PICA is a requirement for infrastructure providers who operate oracles and collators on the network. Picasso’s OpenGov structure and design is an adapted version of Polkadot OpenGov. diff --git a/docs/docs/governance-&-token/token-transparency.md b/docs/docs/governance-&-token/token-transparency.md index 47dd0fdd958..68cd84134d8 100644 --- a/docs/docs/governance-&-token/token-transparency.md +++ b/docs/docs/governance-&-token/token-transparency.md @@ -104,9 +104,7 @@ Following the launch of OpenGov phase 2 on Picasso, the allocation for the Picas #### Crowdloan Pallet Funds -Are located at the crowdloan pallet: `5w3oyasYQg6vkbxZKeMG8Dz2evBw1P7Xr7xhVwk4qwwFkm8u` - -A detailed list of the crowdloan contributions and rewards can be found [on our GitHub](https://github.com/ComposableFi/composable/blob/main/docs/docs/networks/picasso/crowdloan-contributors/crowdloan-logs.csv). +Were located at the crowdloan pallet: `5w3oyasYQg6vkbxZKeMG8Dz2evBw1P7Xr7xhVwk4qwwFkm8u` #### IBC Escrow Address @@ -161,5 +159,4 @@ The past performance of any asset is not indicative of future results. Although in the event any statement is or becomes inaccurate, the creator is not responsible for any such inaccuracies and the reader fully disclaims and releases the creator from any and all liability. Since the content is intended to be disclosed on the date of its release there is no duty on the part of the creator to update any material shared herein. -Please see our important Legal Disclosures & Disclaimers which are fully incorporated herein as if set out here at length: -[https://www.composable.finance/disclaimer](https://www.composable.finance/disclaimer) +Please see our important [Legal Disclosures & Disclaimers](https://github.com/ComposableFi/composable/blob/main/docs/docs/faqs/disclaimers-disclosures-for-composable-tokens.md) which are fully incorporated herein as if set out here at length. diff --git a/docs/docs/governance-&-token/use-cases.md b/docs/docs/governance-&-token/use-cases.md index f7c226e1194..31d260bcc6b 100644 --- a/docs/docs/governance-&-token/use-cases.md +++ b/docs/docs/governance-&-token/use-cases.md @@ -14,7 +14,7 @@ In pursuit of a trustless and interoperable vision, PICA plays a crucial role, a PICA is used to secure Picasso, a Cosmos SDK L1 blockchain. It also used as a native token on [Picasso Kusama](../governance-%26-token/opengov.md). This is the first instance of a token being utilized for validation within both the Kusama and Cosmos ecosystems and highlights the critical role PICA plays within cross-ecosystem communication. ### Bridging Fees Distribution -A percentage of the bridging fees generated by each new IBC connection involving Picasso will be allocated to [stakers of PICA on Picasso](/docs/docs/user-guides/pica-staking.md). At present, stakers receive rewards from the Polkadot-Cosmos IBC connection. +A percentage of the bridging fees generated by each new IBC connection involving Picasso will be allocated to stakers of PICA on Picasso. At present, stakers receive rewards from the Polkadot-Cosmos IBC connection. With the introduction of Solana and Ethereum IBC connections in Q1 of 2024, 20% of the bridging fees from these connections will be distributed to PICA stakers. @@ -66,6 +66,5 @@ Share of redistributed revenue up the curve for longer-duration stakers will onl The PICA token is available on: - [Osmosis DEX](https://app.osmosis.zone/) -- [Pablo DEX](https://app.pablo.finance/) on Picasso Kusama - [Uniswap V2](https://app.uniswap.org/explore/tokens/ethereum/0xbb63a9b64a80e9338b8ea298c51765e57c4f159c?chain=mainnet) on Ethereum - [Jupiter](https://jup.ag/swap/966vsqwoS3ZBrHesTyAvE7esFV2kaHaDFLLXs4asPdLJ-So11111111111111111111111111111111111111112) on Solana diff --git a/docs/docs/technology/ibc/beefy-light-client.md b/docs/docs/technology/ibc/beefy-light-client.md index 2840d464752..918fb082f42 100644 --- a/docs/docs/technology/ibc/beefy-light-client.md +++ b/docs/docs/technology/ibc/beefy-light-client.md @@ -12,9 +12,9 @@ We are also developing a BEEFY light client implementation for Cosmos-IBC (11-BE ## BEEFY Finality Gadget -With the [BEEFY protocol](https://www.youtube.com/watch?v=ZmIa_4hPRZ8&t=2378s), the authority set produces an extra finality proof for light clients which consists of the MMR root hash of all blocks finalized by [GRANDPA](https://polkadot.network/tag/grandpa/) (the finality gadget implemented for the Polkadot relay chain) at a given height. With the introduction of this protocol, light clients no longer need to be aware of all the headers in a chain for them to be convinced about finality. This drastically reduces the size of the data that light clients must store to follow the chain’s consensus to exactly 124 bytes. +With the [BEEFY protocol](https://www.youtube.com/watch?v=ZmIa_4hPRZ8&t=2378s), the authority set produces an extra finality proof for light clients which consists of the MMR root hash of all blocks finalized by [GRANDPA](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa) (the finality gadget implemented for the Polkadot relay chain) at a given height. With the introduction of this protocol, light clients no longer need to be aware of all the headers in a chain for them to be convinced about finality. This drastically reduces the size of the data that light clients must store to follow the chain’s consensus to exactly 124 bytes. -A preliminary [specification](https://github.com/paritytech/grandpa-bridge-gadget/blob/td-docs/docs/beefy.md) for BEEFY is already available and is largely implemented, barring a few kinks that need ironing out. At a high level, this is a new protocol that will be added to Polkadot without the need for a hard fork. Thanks to the [WebAssembly (Wasm)](https://webassembly.org/) runtime and the on-chain governance protocol, this new protocol will produce significantly lighter finality proofs for light clients for both on-chain and off-chain uses. It will achieve this by having the existing GRANDPA authority set periodically vote on the Merkle Mountain Range root hash of all blocks that have been considered final by the network. +A preliminary [specification](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa) for BEEFY is already available and is largely implemented, barring a few kinks that need ironing out. At a high level, this is a new protocol that will be added to Polkadot without the need for a hard fork. Thanks to the [WebAssembly (Wasm)](https://webassembly.org/) runtime and the on-chain governance protocol, this new protocol will produce significantly lighter finality proofs for light clients for both on-chain and off-chain uses. It will achieve this by having the existing GRANDPA authority set periodically vote on the Merkle Mountain Range root hash of all blocks that have been considered final by the network. This proof is shown below: diff --git a/docs/docs/technology/ibc/bitcoin.md b/docs/docs/technology/ibc/bitcoin.md new file mode 100644 index 00000000000..a1b0316924c --- /dev/null +++ b/docs/docs/technology/ibc/bitcoin.md @@ -0,0 +1,44 @@ +# Bitcoin IBC + +With a number of IBC Protocol extensions complete, Picasso now turns its focus to Bitcoin. As announced in July 2024, Picasso is in the process of researching an implementation of IBC on Bitcoin. As a result, the world’s first blockchain will become interoperable in a trust-minimized manner with all IBC-enabled chains for the first time. A number of benefits will thus be realized, including that cross-chain DeFi will be positioned to flourish on Bitcoin. + +## Background + +Bitcoin is the original cryptocurrency, with both the Bitcoin chain and its token being established in 2009. Bitcoin remains to be at the top of crypto rankings; at the time of writing, it has the largest Market Cap, which is over $1.1 trillion (as per [CoinMarketCap](https://coinmarketcap.com/currencies/bitcoin/)). Bitcoin is also the crypto that is arguably the closest to mass adoption, exemplified when Bitcoin ETFs were approved by the US Securities and Exchange Commission in January 2024. + +However, DeFi practices with Bitcoin are limited compared to other blockchains like Ethereum due to its inefficiencies such as significant financial/energy costs to operate, slow transaction speeds and a lack of smart contract infrastructure. Bitcoin’s lack of interoperability [has also been cited](https://metlabs.io/en/defi-bitcoin-possible-and-realistic/) as a main reason for its limited DeFi practices, as decentralized applications on Bitcoin are isolated from other applications and ecosystems. + +Thus, DeFi on Bitcoin represents a huge untapped opportunity, given the massive size and reputation of the network. For instance, [one prediction from Franklin Templeton](https://www.coindesk.com/opinion/2024/06/05/a-more-than-1t-bitcoin-defi-opportunity/#:~:text=The%20primary%20differentiator%20between%20DeFi,underlying%20asset%20(native%20token).) estimates that more than $1 trillion could be generated in the next 5 to 10 years from Bitcoin DeFi practices. + +With Picasso’s Bitcoin IBC connection, users and developers will be able to implement any kind of cross-chain use case imaginable between Bitcoin and the other IBC-enabled chains. The Bitcoin IBC connection will therefore introduce the following benefits: + +- Removing barriers to the growth of DeFi on Bitcoin +- Introducing new cross-chain use cases to and from Bitcoin +- Facilitating the flow of Bitcoin-native assets to other ecosystems (and vice versa), resulting in enhanced liquidity across the board +- Streamlining the cross-chain user experience to enhance chain-agnosticism and adoption of DeFi overall + +However, there are many challenges faced when trying to implement IBC on Bitcoin. If you are familiar with how IBC works, the first thing you're probably thinking about is how is it even possible due to the fact that Bitcoin is a proof-of-work blockchain, and building a light client based IBC connection for this scenario is impossible. + +## How it works + +The IBC protocol can be cost- and time-efficient compared to many other bridges, but also it is always trust-minimized. Most popular bridges like Wormhole are trusted, meaning users must put their faith into a third party to uphold the security of the bridge and facilitate asset transfers. In contrast, IBC is trustless, as it uses cryptographic techniques (instead of a trusted third party) to ensure bridge security and reliability. As a result, users only need to trust in publicly visible code when transferring over IBC. + +These IBC requirements that Bitcoin lacks are as follows: + +### Light Clients + +Light clients or light nodes are considered “light” in that they have less data storage than a traditional node. These are required on either side of an IBC connection. Thus, we must create a light client of the Bitcoin chain on each chain connected to Bitcoin over IBC. We must also create a light client of these IBC-enabled chains on Bitcoin. + +### A Way for the IBC Protocol to be Understood on Bitcoin + +To allow Bitcoin to understand the IBC protocol, we could likely use [BitVM](https://github.com/BitVM/BitVM), or similarly, [ArchVM](https://twitter.com/ArchNtwrk/status/1778113793312034965). BitVM is a novel, work-in-progress computing paradigm enabling Turing-complete smart contracts on Bitcoin via Taproot trees and fraud proofs. This provides an opportunity for light client proofs (such as those from IBC-enabled chains) to be natively verified by Bitcoin. We could use BitVM (or ArchVM) similarly to how [Citrea](https://docs.citrea.xyz/technical-specs/characteristics/bitcoin-settlement-trust-minimized-btc-bridge) uses it; Citrea is a trust-minimized bridge program that consists of an operator and verifier software with ZK circuits of the bridge, built on top of BitVM. + +Another option would be using [SNARKnado](https://twitter.com/alpenlabs/status/1785730103122513943?s=46&t=L6WUuf8WDk_t4mjtsDJAQA) by [Alpen Labs](https://www.alpenlabs.io/). This product builds on BitVM to verify SNARKs on Bitcoin. Unlike BitVM2, SNARKnado does not support permissionless challenges. However, SNARKnado avoids unresolved challenges like on-chain costs of BitVM2. Thus, Alpen Labs believes these two protocols can be complementary with shared techniques and optimizations. + +### Enabling the IBC Protocol on Both Sides + +We also need to enable the IBC Protocol to operate on both Bitcoin and the other chains we are connecting it with. On Bitcoin, we would need the [Pay to Scrypt Hash (P2SH) contract](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) that allows for the storage of Bitcoin, as well as the unlocking based on the ZK proof that is passed over IBC. + +:::tip +For a more technical breakdown of how Picasso plans to implement IBC Bitcoin - or to engage in discussion about this innovation - check out our Request for Proposal (RFP) for this initiative on the Composable Research Forum.] +::: \ No newline at end of file diff --git a/docs/docs/technology/ibc/ethereum.md b/docs/docs/technology/ibc/ethereum.md index b3fff77c249..05638fb9dea 100644 --- a/docs/docs/technology/ibc/ethereum.md +++ b/docs/docs/technology/ibc/ethereum.md @@ -1,7 +1,7 @@ # Ethereum IBC :::tip -The inaugral implementation of IBC on Ethereum is now live on mainnet. Users can utilise [Mantis.app](https://games.mantis.app/) to bridge between Ethereum and Cosmos chains via Picasso. +The inaugral implementation of IBC on Ethereum is now live on mainnet. Users can utilise [app.picasso.network](https://app.picasso.network/?from=ETHEREUM&to=SOLANA) to bridge between Ethereum, Solana and Cosmos chains via Picasso. ::: Ethereum's integration with the IBC protocol expands the ability to offer novel and valuable DeFi use cases and enhance opportunities for participants across diverse ecosystems. In line with prior IBC extensions, incorporating essential components such as a light client, relayer, and IBC implementation remains a prerequisite. However, when extending IBC compatibility to Ethereum, it became imperative to supplement the relayer with a ZK-Circuit. @@ -19,9 +19,9 @@ Casper is Ethereum's PoS consensus protocol implemented within ETH 2.0. In Caspe The Casper Light Client relies on the **Sync Committee**, which comprises 512 validators who undergo random selection once every sync committee period, approximately equal to one day. While a validator is actively participating in the sync committee, their primary responsibility entails consistently signing the block header representing the current chain head during each slot. The Sync Committee is a succinct way of using a sample to verify a subset of the signatures of Ethereum. -Previously, validating the Tendermint consensus protocol within the EVM posed a challenge due to the absence of an Ed25519 precompile, the default signature scheme used in Cosmos chains using the Tendermint consensus. Existing Solidity implementations for this verification incurred gas costs averaging around 25 million. However, zero-knowledge proofs serve as a precompile for the EVM, enabling developers to integrate highly intricate computations seamlessly. Picasso's zkIBC bridge to Ethereum employs [TendermintX](https://github.com/succinctlabs/tendermintx) to verify all signatures in succinct proofs. +Previously, validating the Tendermint consensus protocol within the EVM posed a challenge due to the absence of an Ed25519 precompile, the default signature scheme used in Cosmos chains using the Tendermint consensus. Existing Solidity implementations for this verification incurred gas costs averaging around 25 million. However, zero-knowledge proofs serve as a precompile for the EVM, enabling developers to integrate highly intricate computations seamlessly. Picasso's zkIBC bridge to Ethereum initially employed [TendermintX](https://github.com/succinctlabs/tendermintx) to verify all signatures in succinct proofs. After the launch of [Succinct's SP1](https://github.com/succinctlabs/sp1), the bridge switched its implementation and now uses **SP1 in production**. -The deployment of smart contracts and circuits by Succinct for TendermintX is operational in production, with each client update for the IBC implementation on Ethereum costing approximately 650,000 gas. These client updates include headers of Picasso and data such as block hashes, timestamps, and state roots. +The deployment of smart contracts and circuits by Succinct for SP1 is operational in production, with each client update for the IBC implementation on Ethereum. These client updates include headers of Picasso and data such as block hashes, timestamps, and state roots. :::info The Ed25519 signature scheme is a cryptographic algorithm used for digital signatures and adopted by majority of Blockchains. It is based on the elliptic curve cryptography and provides strong security with relatively short key sizes. The scheme is named after the Edwards curve Curve25519, which is used as the underlying mathematical structure. Ed25519 offers efficient signing and verification operations, making it popular for various applications such as secure communication protocols, cryptocurrencies, and digital authentication systems. diff --git a/docs/docs/technology/ibc/near.md b/docs/docs/technology/ibc/near.md index 501a0a29191..28aa783ed12 100644 --- a/docs/docs/technology/ibc/near.md +++ b/docs/docs/technology/ibc/near.md @@ -3,7 +3,7 @@ _IBC everywhere_ :::note -This section outlines our progress in connecting the IBC Protocol to NEAR and our upcoming plans. While we are still working on this project, we expect to launch sometime in Q1 2024. +This section outlines our progress in connecting the IBC Protocol to NEAR and our upcoming plans. While we are still working on this project, we expect to launch sometime in Q1 2025. ::: diff --git a/docs/docs/technology/ibc/solana.md b/docs/docs/technology/ibc/solana.md index 3197ae0c38c..f2fbdee4f1e 100644 --- a/docs/docs/technology/ibc/solana.md +++ b/docs/docs/technology/ibc/solana.md @@ -10,7 +10,7 @@ Due to the requirements of implementing the IBC protocol, Solana and a number of The TL;DR of this innovation is an AVS powered by the Solana Restaking Layer and deployed on Solana as a smart contract, providing all of the features needed to make Solana IBC-compatible. **Operators of the AVS receive messages about transactions on Solana, using this information to create blocks on the AVS that reflect these Solana transactions.** -The [AVS for Solana IBC](../restaking/sol-ibc-avs.md) (previously referred to as the Guest Blockchain) serves as a replication of Solana, but unlike Solana, it is able to interoperate along the IBC landscape via [Mantis.app](https://games.mantis.app/). In this manner, the AVS for Solana IBC can be considered as a sort of Layer 2 (L2) of the Solana network. +The [AVS for Solana IBC](../restaking/sol-ibc-avs.md) (previously referred to as the Guest Blockchain) serves as a replication of Solana, but unlike Solana, it is able to interoperate along the IBC landscape. In this manner, the AVS for Solana IBC can be considered as a sort of Layer 2 (L2) of the Solana network. :::tip Solana Restaking Through the Solana IBC connection, **[restaking is enabled on Solana](../restaking.md) for the first time**. Restaking is a new and popular concept primarily established in the Ethereum community. In brief, restaking involves staking an asset with a blockchain’s validators along the PoS mechanism using liquid staked and receipt tokens belonging to the underlying L1. @@ -62,6 +62,6 @@ To address this challenge, we have implemented an asset whitelisting contract th ## Benefits & Use Cases -As a result of Solana IBC, the massive usership and liquidity of the ecosystem can flow into other IBC-enabled chains over Picasso and vice versa. Solana is a thriving ecosystem in terms of usership as well as in terms of value. As of December 7, 2023, the [total value locked (TVL) in Solana](https://defillama.com/chain/Solana) DeFi protocols is $712 million. This means Solana is the 7th largest blockchain in terms of TVL. The market cap of the network’s native SOL token was approximately $27.3 billion as of the same day. This puts SOL as the 6th largest token in terms of total market capitalization. +As a result of Solana IBC, the massive usership and liquidity of the ecosystem can flow into other IBC-enabled chains over Picasso and vice versa. Solana is a thriving ecosystem in terms of usership as well as in terms of value. As of September 24, 2024, the [total value locked (TVL) in Solana](https://defillama.com/chain/Solana) DeFi protocols is $5.162 billion. This means Solana is the 3rd largest blockchain in terms of TVL. The market cap of the network’s native SOL token was approximately $69 billion as of the same day. This puts SOL as the 5th largest token in terms of total market capitalization. Moreover, this connection allows for the development of new cross-chain use cases between Solana and other ecosystems, and enables users to more seamlessly navigate the cross-chain DeFi space. With the Solana IBC connection, users and developers will be able to implement any kind of cross-chain use case imaginable between Solana and the other IBC-enabled chains, including Cosmos, Polkadot, Kusama, and Ethereum. Thus, the speed, cost-effectiveness, and massive liquidity and usership of Solana can be leveraged from other ecosystems as well. diff --git a/docs/docs/technology/mantis.md b/docs/docs/technology/mantis.md deleted file mode 100644 index b05b1922d94..00000000000 --- a/docs/docs/technology/mantis.md +++ /dev/null @@ -1,33 +0,0 @@ -# Protocol Overview - -Composable’s Multichain Agnostic Normalized Trust-minimized Intent Settlement (MANTIS) is an ecosystem-agnostic intent settlement framework. MANTIS facilitates settlement of cross-chain user intents, optimising the supply chain to deliver upon our vision of a user-centric, ecosystem-agnostic future for DeFi. - -Presently, MANTIS is live on mainnet for testing with a number of solvers to fulfill user intents, with the inclusion of oracles and collators to run validators for this framework. - -:::info Understanding Intents - -Intents have become a hot topic in DeFi, though there is no one set definition for this concept. In general, intents are understood to be users’ desires for a given transaction or other outcome. Intents include desired parameters (such as to swap X amount of A token for B token), but leave some room for flexibility (such as where this swap occurs) in the solution that solvers provide. Anoma does a great job of breaking down the history and various definitions of intents in [this blog](https://anoma.net/blog/intents-arent-real) about their Intents Day event. [This blog](https://blog.essential.builders/introducing-essential/) by Essential also provides another means of defining intents and solvers. -::: -## Intents are Inherently Cross-Domain - -Composable's thesis introduces an additional feature to how intents are currently recognised, interoperability - intents are inherently cross-domain. To understand this, the history of the equities markets provides great insights as it became more efficient with execution being broken across different markets. Prior to the introduction of dark pools, which are private liquidity pools, individuals were only able to use select markets: - -After the introduction of dark pools, which enabled orders to be broken up and split into different markets, the solution space broadened and more earnings opportunities were made available: - -![dark-pool](../technology/mantis/overview.png) -## Blockchains are Inherently Trust-No-One Markets -Orders live on blocks that are publicly verifiable. A supply chain forms around these orders, involving the following entities and roles: - -- **Users** - submit orders -- **Protocols** - serve as venues for orders -- **Block builders** - build blocks within orders -- **Proposers** - propose blocks with orders -- **Searchers** - extract MEV from the presence of these orders in pre-processed blocks - -This relationship is shown below: - -![flow](../technology/mantis/flow.png) - -Distinct blockchain markets, though increasing the solution space for problems, do not actually communicate with each other. There is thus a huge amount of potential loss due to lack of synchronicity between these markets. Unlike the equities market, there is no credibly verifiable way to settle orders between chains, and also settle them at the same time. - -How can the supply chain be optimized so that there is the remote possibility of facilitating this? **The solution is MANTIS.** \ No newline at end of file diff --git a/docs/docs/technology/mantis/benefits-use-cases.md b/docs/docs/technology/mantis/benefits-use-cases.md deleted file mode 100644 index 9959b58d093..00000000000 --- a/docs/docs/technology/mantis/benefits-use-cases.md +++ /dev/null @@ -1,71 +0,0 @@ -# Cross-Chain Intent Settlement: Benefits & Use Cases - -## Improved Cross-Chain User Experience - -At Composable, our focus has always been on improving the cross-chain landscape by providing user-friendly cross-chain infrastructure. By making DeFi more accessible and appealing in this manner, the industry becomes better positioned for mass adoption. - -Specifically regarding MANTIS, we believe that a user intent settlement platform (particularly, a cross-chain one) can improve the landscape for blockchain transaction execution. That is because this vastly improves the user experience, carrying out all types of cross-domain transactions and abstracting away the complexity involved in this process. - -Furthermore, users do not have to spend time identifying the best opportunities to satisfy their intents, only to find that these opportunities are no longer available by the time that they have explored all options; instead this is done for them, in short order. - -Here’s the TLDR on MANTIS and how it improves the cross-chain transaction user experience: - -- **One Stop**: bring any asset to and from any chain, swap natively, and earn yield instantly -- **Do You**: maximize the potential of your assets with lending, staking, retaking, LP, vaults, lock drops, NFT borrowing, limit orders, and perps -- **Performant**: leveraging IBC, MANTIS can execute simultaneous orders, cross-chain -- **Execution**: get best-price execution with dark pools and cross-chain MEV subsidies (soonTM) -- **Simplified**: an intuitive, seamless design that lets you have fun on-chain - -In this way, MANTIS is the everything dApp for the cross-domain future of DeFi. - -The go-to-market plan for MANTIS consists of implementing a layer for gamification, beginning with staking for Solana IBC. - -In crypto, we often find ourselves needing to do many steps to hunt for alpha. However, there are lots of people on twitter that know what they’re doing and suggest/curate alpha for the average degen: - - - -Still, the steps are not necessarily clear and might be daunting. We have thus made a commitment over the past few years to introduce a platform that is natively cross-chain and simplifies the overall crypto experience for people. - -**The best part is, this can be shared with others, introducing a Social Fi feeling that has been lacking from crypto.** - -Social Fi has been manifested in many different contexts such as friend.tech, the points system pioneered by MarginFi, and many other platforms such as Blast. However, it has not really been super successful in the realm of copy-trading. We believe that now is the right time to introduce such a product, with a level of gamification to it. This is accomplished by the MANTIS Games, detailed. - -## Cross-Domain MEV - -A cross-domain intent settlement platform (such as that being developed by Composable) reshapes an emerging type of MEV: cross-domain MEV. As this is a relatively novel form of MEV, and MEV is still a poorly studied and reported phenomenon, a number of questions thus arise. In particular, we at Composable believe that cross-domain MEV could impact the price of intent settlement in a positive way, decreasing cost for users. In fact, this type of MEV is a positive for all levels of the supply chain. - -:::tip [Obadia et al, 2021](https://arxiv.org/pdf/2112.01472.pdf) - -Cross-domain MEV can be defined as the extraction of value from cross-chain transactions mathematically defined by Obadia et al, 2021. To summarize, this research found that cross-domain MEV is the maximum of the sum of final balances across all considered domains into a single base asset (canonically the first domain considered), given there is some assortment of transactions across all those domains that are executed together. Importantly, this research also concluded that “We expect bridges to play an extremely important role in such an MEV ecosystem, as the cheaper, more ubiquitous, and faster bridges become, the more competitive these arbitrage transactions naturally become by decreasing the inequality of the action space across players as a function of their capital.” -::: - -In the Composable ecosystem specifically, cross-domain MEV is potentiated from cross-chain intent settlement. Composable’s MANTIS receives user transaction intents, which are then picked up by solvers who compete to find the best solution to execute these intents. Once the optimal solution is chosen via a scoring mechanism, the winning solver must then execute upon their proposed solution. - -A single solution can involve a number of different domains. Searchers can access the orderflow from these solutions not only within each domain but also between domains by accessing the mempool: - -![orderflow](../mantis/problem-mempool.png) - -This results in cross-domain MEV. - -## Free/Reduced Gas - -Another exciting potential benefit of a cross-domain intent settlement framework is reducing gas costs for users which is detailed in [this forum post](https://research.composable.finance/t/cross-domain-mev-as-an-influence-on-pricing-of-intent-settlement-can-we-achieve-free-reduced-cost-exchange/47). In brief, the way that gas costs could be kept as low as possible would be to have such gas costs be a dynamic value that is subject to market conditions. This means that users could be able to trade for free, but only in the event that the below incentive equation is positive, and solvers are able to cover user gas fees: - -- (+) 0.1% of transfer, like CoW Swap -- (+) Sale to blockbuilders -- (+) MEV -- (-) Money paid to blockbuilders in the role of searcher -- (-) User’s gas - -If not, then users will have a partial gas payment. Solvers can also take out short term loans and use these to cover gas fees, then pay these loans off after the order is executed and they receive their rewards. - -## Future Explorations - -There are a number of ways in which Composable envisions expanding and improving our MANTIS intent settlement framework, once deployed. These include: - -- Incorporating credible commitment schemes such as MEV-Boost ++ and PEPC-Boost. -- Building a new relay that would allow for partial block building -- Moving towards a no-builder future where searchers can build blocks collaboratively and send them directly to proposers -- Implementing mempool matching and pre-reserved blockspace - -We are incredibly excited about the potential of MANTIS for delivering upon our vision of a user-centric, ecosystem-agnostic future for DeFi. Stay tuned for more updates about this project and our progress towards its deployment. \ No newline at end of file diff --git a/docs/docs/technology/mantis/components.png b/docs/docs/technology/mantis/components.png deleted file mode 100644 index bfa5086c2f1..00000000000 --- a/docs/docs/technology/mantis/components.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ab53576f75b3c473fc7b818b595f933892059be0e1fd49d0424e4b4461f1eb8 -size 127490 diff --git a/docs/docs/technology/mantis/flow.png b/docs/docs/technology/mantis/flow.png deleted file mode 100644 index 7b892927b86..00000000000 --- a/docs/docs/technology/mantis/flow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec140069f27d86bb212dd383133325534f9397174781984e914ce92f41756481 -size 46873 diff --git a/docs/docs/technology/mantis/integration-guide.md b/docs/docs/technology/mantis/integration-guide.md deleted file mode 100644 index ed864ab74b0..00000000000 --- a/docs/docs/technology/mantis/integration-guide.md +++ /dev/null @@ -1,50 +0,0 @@ -# Integration Guides - -## Integration Guide for Apps/Wallets -Wallets and Banana Gun bots will be able to plug into MANTIS using an open source UI package. - -The end-to-end flow for getting data for solvers, posting the solution, and executing solutions on chain is as follows: - -1. **User Posts Problem** -- The user sends their transaction to our Cosmos CosmWasm contract via RPC. -- The order ends up in storage. -- It is the user's responsibility to consult an oracle to set limits he wants. -- The problem format is [here](https://github.com/ComposableFi/composable/blob/f65076f5fcf2f0903b3d21e62ba22d7ba91c0c9f/code/xcvm/cosmwasm/contracts/order/src/lib.rs#L65). - - In JSON format, in https://www.npmjs.com/package/cvm-cw-types?activeTab=code, open `/cvm-cw-types/dist/cw-mantis-order/response_to_get_all_orders.json`. - -2. **Solvers Collect Data Needed to Solve Problems** -- AMM amounts/fees, tokens denominations, and routes are needed. - - [AMM Neutron](https://app.astroport.fi/api/trpc/pools.getAll?input=%7B%22json%22%3A%7B%22chainId%22%3A%22phoenix-1%22%7D%7D) - - [AMM Osmosis](https://app.osmosis.zone/api/pools?page=1&limit=300&min_liquidity=500000) - - [Routes](https://github.com/ComposableFi/composable/blob/main/code/cvm/cvm.json) - - Fees and rate limits are added if needed - -- These are collected off-chain and on-chain. -- Coding is in progress to satisfy what the solver algorithm wants. - -3. **Solvers Run Optimization Algorithm** -- Solvers solve for: - - Maximal volume via Coincidence of Wants (CoWs), where CoWs are matched up to the limit. - - The remaining amount of the order is proposed to be settled via constant function market maker (CFMM) routes -- Python coding is in progress [here](https://github.com/BrunoMazorra/2-assets-matching). -- Rust port is [here](https://github.com/ComposableFi/composable/blob/main/mantis/solver/src/solver.rs). -4. **Solvers Post Solution On-Chain Into Contract** -- Python solver output is in progress. -- The final matrix output is to be converted into a call to a standard Cosmos CosmWasm RPC. -- The solution message to RPC format is in https://www.npmjs.com/package/cvm-cw-types?activeTab=code, in the `/cvm-cw-types/dist/cw-mantis-order/response_to_get_all_solutions.json` file. -5. **Contract Choses the Solution Clearing the Largest Volume** -- Currently, any solution of several is picked each block for testing. -- The final configuration will be 2 blocks of solutions. -- The [contract](https://github.com/ComposableFi/composable/blob/f65076f5fcf2f0903b3d21e62ba22d7ba91c0c9f/code/xcvm/cosmwasm/contracts/order/src/lib.rs#L343) checks that the solution respects the user's limits. -6. **Contract Executes CoW in the Same Transaction** -- CoWs happen on the same chain. -- These are coded as simple CosmWasm transfers back and forth between accounts. -7. **Contract Sends a Message to Convert Route to CVM** -- Each solution has a simplified version of routes which is mapped 1:1 to a more detailed lower level CVM program. - - Coding is in progress. -The solution route tree is [here](https://github.com/ComposableFi/composable/blob/f65076f5fcf2f0903b3d21e62ba22d7ba91c0c9f/code/xcvm/cosmwasm/contracts/order/src/lib.rs#L153). -An equivalent root of the tree in the CVM is [here](https://github.com/ComposableFi/composable/blob/ee480d0062b8cde89e5cfb848881d88bb56f2625/docs/docs/technology/cvm/specification.md?plain=1#L120). -8. **The CVM is Executed** -- This mostly involves converting CVM instructions to IBC packets. - -Problems can be submitted from a wallet or application via RPC to MANTIS. [Here](https://github.com/ComposableFi/composable/blob/06b2b265a4fb0e866faaf76af4ab94ba580560dd/docs/docs/technology/mantis/mantis.ts#L4) is an example typescript problem for submission to MANTIS. diff --git a/docs/docs/technology/mantis/lfe-cvm.png b/docs/docs/technology/mantis/lfe-cvm.png deleted file mode 100644 index eaf73aefb73..00000000000 --- a/docs/docs/technology/mantis/lfe-cvm.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8995dc53ece536508a54b36dbd02975e266a0661073cbc90088e6b2e8e0bdcc0 -size 51327 diff --git a/docs/docs/technology/mantis/mantis.ts b/docs/docs/technology/mantis/mantis.ts deleted file mode 100644 index 8a3b72e7690..00000000000 --- a/docs/docs/technology/mantis/mantis.ts +++ /dev/null @@ -1,79 +0,0 @@ -/// example usage of MANTIS batch auction order contract -/// for CosmWasm usage see -/// - https://github.com/cosmos/cosmjs/blob/main/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts -/// - https://github.com/CosmWasm/ts-codegen -import { CwMantisOrderClient } from "./dist/cw-mantis-order/CwMantisOrder.client.js" -import { GasPrice } from "@cosmjs/stargate" -import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate" -import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing" -import { Coin } from "cosmjs-types/cosmos/base/v1beta1/coin.js" - -const print = console.info - -print("creating wallet") -const wallet = await DirectSecp256k1HdWallet.fromMnemonic( - "apart ahead month tennis merge canvas possible cannon lady reward traffic city hamster monitor lesson nasty midnight sniff enough spatial rare multiply keep task", - { - prefix: "centauri", - } -) - -const sender = (await wallet.getAccounts())[0].address -print(sender) - -const rawClient = await SigningCosmWasmClient.connectWithSigner("https://rpc.composable.nodestake.top:443", wallet, - { - gasPrice: GasPrice.fromString("0.25ppica") - }) - -const client = new CwMantisOrderClient(rawClient, sender, "centauri1c676xpc64x1lxjfsvpn7ajw2agutthe75553ws45k3ld26vy8pts0w203g") - -const give = "1100000000" -const wants = "1000000000" - -print("one side of want") -const ppica = Coin.fromPartial({ denom: "ppica", amount: give }) -print(await client.order({ - msg: { - timeout: 100, - wants: { - denom: "pdemo", - amount: wants, - }, - } -}, - "auto", - null, - [ppica] -)) - - -print("other side of want") -const pdemo = Coin.fromPartial({ denom: "pdemo", amount: give }) -print(await client.order({ - msg: { - timeout: 100, - wants: { - denom: "ppica", - amount: wants, - }, - } -}, - "auto", - null, - [pdemo] -)) - -print("observer that give and want of one is more than want and less than give of other") -const orders = await client.getAllOrders() -print(orders) - -if ( - orders[0].given.amount > orders[1].msg.wants.amount && - orders[1].given.amount > orders[0].msg.wants.amount) { - print("solver run in background and finds all such matches by limits and coins and sends solutions to contract as COWs") -} else { - print("solver will send cross chain swaps") -} - -print("...observe events or query order with you order until it solved or timeouts") diff --git a/docs/docs/technology/mantis/mantis1.png b/docs/docs/technology/mantis/mantis1.png deleted file mode 100644 index e78ba85a63d..00000000000 --- a/docs/docs/technology/mantis/mantis1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c268597a10bbd272dbac0f257000263d7d92bd8fced08a0fb025bf04bd62fc1e -size 106347 diff --git a/docs/docs/technology/mantis/mda.png b/docs/docs/technology/mantis/mda.png deleted file mode 100644 index 300e18af1d0..00000000000 --- a/docs/docs/technology/mantis/mda.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4dea1b9e3b473082b94b529e2dbb5345d25f3c97b0da43102d7d8102c6c4c83 -size 214665 diff --git a/docs/docs/technology/mantis/overview.png b/docs/docs/technology/mantis/overview.png deleted file mode 100644 index 2a56c4422be..00000000000 --- a/docs/docs/technology/mantis/overview.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab51f06d33d354d793f2485048726bd867382c41f81ea9779b91ca3d7817082f -size 42739 diff --git a/docs/docs/technology/mantis/problem-mempool.png b/docs/docs/technology/mantis/problem-mempool.png deleted file mode 100644 index 6a7224e97ff..00000000000 --- a/docs/docs/technology/mantis/problem-mempool.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8dced198b87893ec2afe7e116cbf0c56b0da0a599126efbbbea649015818d7f -size 27961 diff --git a/docs/docs/technology/mantis/product.md b/docs/docs/technology/mantis/product.md deleted file mode 100644 index af19adee871..00000000000 --- a/docs/docs/technology/mantis/product.md +++ /dev/null @@ -1,32 +0,0 @@ -# Overview - -This document outlines the user experience flow for MANTIS, a cryptocurrency trading platform. It details the process from the initial user intent submission to the final execution of orders, emphasizing features like batch auctions for volume optimization, dynamic price matching, and cross-chain executions. - -## Cryptocurrency Trading Platform: User Experience Flow - -### 1. **Intent Submission**: - - **User-Driven Transactions**: Users specify their transaction requirements, typically involving an exchange of a certain amount of one cryptocurrency (Token A) for another (Token B). - - **Assisted Order Formulation**: The platform assists in setting up order limits, providing suggestions for the exchange amount of Token B. The exchange rate will not be less than the user-defined A/B ratio. - - **Confirmation and Blockchain Registration**: Users review, confirm, and sign their transaction details for blockchain recording. - - **Timeout vs. Price Limits**: A balance between price limits and matching times is maintained, with tighter limits possibly leading to longer wait times for order matching. - -### 2. **Order Execution Observation**: - - **Status Monitoring**: Users can track the status of their orders post-placement. - - **Possible Outcomes**: Orders may be fully executed, partially filled, canceled, or timed out. - - **Handling Partial Fills**: Partially filled orders result in users receiving a portion of the requested amount, with the remainder being canceled or expiring based on the order settings. - -### 3. **Single-Chain Execution Scenario**: - - **Efficient Execution**: The platform swiftly matches orders in a single transaction block for prompt fulfillment. - - **Batch Auctions**: Batch Auctions process multiple orders simultaneously, maximizing the product of exchanged amounts (A * B) for efficient matching. - -**Order Pricing**: - - **Dynamic Price Matching**: The platform matches orders to achieve optimal trading volume without violating user-set limits. - - **Execution at Optimal Prices**: Execution occurs at a price that maximizes volume, ensuring efficiency. - -### 4. **Cross-Chain Solutions**: - - **Multi-Chain Execution**: Certain orders are executed using liquidity pools across multiple blockchain networks, involving several blocks and chains. - - **Cross-Chain Virtual Machine (CVM) Program**: The CVM facilitates these transactions, ensuring efficient multi-chain swaps. - - **Monitoring Interface**: A detailed interface provides real-time updates for multi-chain transactions. - - **Cross-Chain Transfers**: Includes straightforward cross-chain transfers. Solvers find several transfers which they batch into one cross chain message sharing costs of cross chain transfer amid several users. - -This document provides a structured overview of MANTIS's approach to cryptocurrency trading, focusing on efficiency, user assistance, and advanced technological solutions. diff --git a/docs/docs/technology/mantis/protocol-architecture.md b/docs/docs/technology/mantis/protocol-architecture.md deleted file mode 100644 index 9dbd5b8e7b3..00000000000 --- a/docs/docs/technology/mantis/protocol-architecture.md +++ /dev/null @@ -1,35 +0,0 @@ -# Protocol Architecture/Features - -The MANTIS framework is architected with the following components: -- Cross-Domain Communication via the IBC -- Multi-Domain Auctions -- Language for Execution -- Verifiable Settlement - -### Cross-Domain Communication via the IBC - -MANTIS leverages Composable’s IBC bridge to facilitate cross-chain intent settlement. Our trust-minimized bridge in turn leverages the Inter-Blockchain Communication (IBC) Protocol. We have already connected Polkadot, Kusama, and Cosmos/the Interchain to this bridge, with expansion to Solana and Ethereum in the works. - -### Multi-Domain Auctions -User intents are scored based on volume cleared, with solutions being screened for MEV and bundled into a block for each domain. Searchers can tip for priority, and finalized blocks are embedded with validity predicates and sent to builders. This is depicted below: - -![mda](../mantis/mda.png) - -### Language for Execution: The Composable Virtual Machine -When the best solution is found, it is turned into a Composable Virtual Machine (CVM) program, which: -- Specifies which hops need to happen -- Specifies which calls to virtual wallet need to occur -- If a solution has multiple hops - routed back to Centauri chain -- Ex. Transferring to a CEX - - Problem defined as location to send funds to - - User funds transferred to virtual wallet - - CVM instruction set defines the necessary hops to the required network able to accept the assets - - Transfers occur over IBC - -This is depicted below: -![CVM](../mantis/lfe-cvm.png) - -### Verifiable Settlement -Settlement of transactions resolving user intents must be verifiable. We also believe that these transactions must be partial block aware; To improve cross-domain censorship-resistance and enforce searcher conditioning for cross-domain transactions, partial block auctions are a must. - -Examples of this can be seen in Cosmos, but Ethereum requires additional work regarding commitments to allow for a differentiation between top-of-block and rest-of-block. \ No newline at end of file diff --git a/docs/docs/technology/mantis/protocol-flow.md b/docs/docs/technology/mantis/protocol-flow.md deleted file mode 100644 index 40761875369..00000000000 --- a/docs/docs/technology/mantis/protocol-flow.md +++ /dev/null @@ -1,32 +0,0 @@ -# Protocol Flow -A summary of the MANTIS protocol flow in different scenarios is below, with further details found in subsequent sections of this documentation: - -## 1. Intent Submission: -- **User-Driven Transactions**: Users specify their transaction requirements, typically involving an exchange of a certain amount of one cryptocurrency (Token A) for another (Token B). -- **Assisted Order Formulation**: MANTIS assists in setting up order limits; in the example of exchanging A for B, MANTIS provides suggestions for the exchange amount of Token B. The exchange rate will not be less than the user-defined A/B ratio. -- **Confirmation and Blockchain Registration**: Users review, confirm, and sign their transaction details for blockchain recording. -- **Timeout vs. Price Limits**: A balance between price limits and matching times is maintained, with tighter limits possibly leading to longer wait times for order matching. - -## 2. Order Execution Observation: -- **Status Monitoring**: Users can track the status of their orders post-placement. -- **Possible Outcomes**: Orders may be fully executed, partially filled, canceled, or timed out. -- **Handling Partial Fills**: Partially filled orders result in users receiving a portion of the requested amount, with the remainder being canceled or expiring based on the order settings. - -## 3a. Single-Chain Execution Scenario: -- **Efficient Execution**: The platform swiftly matches orders in a single transaction block for prompt fulfillment. -- **Batch Auctions**: Batch Auctions process multiple orders simultaneously, maximizing the product of exchanged amounts (A * B) for efficient matching. - -### 3b. Order Pricing: - -- **Dynamic Price Matching**: The platform matches orders to achieve optimal trading volume without violating user-set limits. -- **Execution at Optimal Prices**: Execution occurs at a price that maximizes volume, ensuring efficiency. - -## 4. Cross-Chain Execution Scenario: -- **Multi-Chain Execution**: Certain orders are executed using liquidity pools across multiple blockchain networks, involving several blocks and chains. -- **Cross-Chain Virtual Machine (CVM) Program**: The CVM facilitates these transactions, ensuring efficient multi-chain swaps. -- **Monitoring Interface**: A detailed interface provides real-time updates for multi-chain transactions. -- **Cross-Chain Transfers**: This includes straightforward cross-chain transfers. - -The above components are displayed in some form in the following architecture diagram of Composable’s Cosmos chain: - -![architecture](../mantis/components.png) \ No newline at end of file diff --git a/docs/docs/technology/mantis/solver-guide.md b/docs/docs/technology/mantis/solver-guide.md deleted file mode 100644 index cf06243a716..00000000000 --- a/docs/docs/technology/mantis/solver-guide.md +++ /dev/null @@ -1,72 +0,0 @@ -# Solver Guide -This tutorial describes how to run a solver node and how users can post problems to this. - -### Deployments - -| **Chain** | **Stage** | **ID** | -| -------- | -------- | -------- | -| centauri-1 | mainnet | centauri1lnyecncq9akyk8nk0qlppgrq6yxktr68483ahryn457x9ap4ty2sthjcyt | -| osmosis-1 | mainnet | | - - -### Problem Submission -An example of a problem that the user can post is here: -```js - { - "@type": "/cosmwasm.wasm.v1.MsgExecuteContract", - "sender": "centauri1mgnu00vn0feumu660y6p7ty5mv58txvhgkr2lu", - "contract": "centauri1lnyecncq9akyk8nk0qlppgrq6yxktr68483ahryn457x9ap4ty2sthjcyt", - "msg": { - "order": { - "msg": { - "wants": { - "denom": "ppica", - "amount": "1000000" - }, - "transfer": null, - "timeout": 2506928, - "min_fill": null - } - } - }, - "funds": [ - { - "denom": "ibc/EF48E6B1A1A19F47ECAEA62F5670C37C0580E86A9E88498B7E393EB6F49F33C0", - "amount": "1" - } - ] - } -``` - -An example of a mainnet transaction is available [here](https://ping.pub/composable/tx/CA9489EC961BA97AB514A74EEC6BF3B6CD9900C00A031AA3BB80DC343CE85F2D). - -You can try it using live code with [this](https://github.com/ComposableFi/composable/blob/main/code/cvm/mantis.ts). - -### Deploying Your Own Contracts -Here is how you can deploy your own contracts: -``` -$BINARY tx wasm store $ORDER_WASM_FILE --from dz --gas=auto -$BINARY tx wasm instantiate 18 '{"admin": "centauri1u2sr0p2j75fuezu92nfxg5wm46gu22ywfgul6k", "cvm_address" : "centauri1wpf2szs4uazej8pe7g8vlck34u24cvxx7ys0esfq6tuw8yxygzuqpjsn0d"}' --label "mantis_order_1" --admin centauri1u2sr0p2j75fuezu92nfxg5wm46gu22ywfgul6k --gas=auto --from=dz -``` -### Running a Solver Node -Documentation on how to run a solver node is located [here](https://github.com/ComposableFi/composable/blob/06b2b265a4fb0e866faaf76af4ab94ba580560dd/docs/docs/technology/mantis/solver-tutorial.md#L4). - -### Problem/Solution Format -See on-chain indexer/explorer for the Problem Solver contract. It will show all in JSON format. - -### Querying the Order Book -How to query the order book on MANTIS is shown below: -- https://order-book.composablenodes.tech/mantis/orders -- https://order-book.composablenodes.tech/mantis/orders?orderId=ORDER_ID - -### CVM Interface -An example of how to convert the solution into a CVM program algorithm is depicted [here](https://github.com/ComposableFi/composable/blob/main/tests/examples/cvm.ts). - -### Fees -There are no fees; users just need to pay gas. - -### Contracts -The full MANTIS contracts GitHub repo is [here](https://github.com/ComposableFi/cvm/tree/main/contracts/cosmwasm/order). - -### Contract to add the Problem to MANTIS -The MANTIS contract to add the problem can be viewed [here](https://github.com/ComposableFi/composable/blob/main/code/cvm/mantis.ts). diff --git a/docs/docs/technology/mantis/solver-integration.md b/docs/docs/technology/mantis/solver-integration.md deleted file mode 100644 index fc07fe1d117..00000000000 --- a/docs/docs/technology/mantis/solver-integration.md +++ /dev/null @@ -1,41 +0,0 @@ -# Solver Integration - -Anyone can be a solver with Composable, though permission from Composable is required in initial phases. Solvers are offchain nodes with an on Composable chain wallet. Solvers monitor several chains, run algorithms to find the best solution for intention, and send solution proposals to the Composable chain. - -To be a solver, one must make an address on Composable’s Cosmos chain. Addresses can be owned by contract or a person’s machine/bot. - -Solver nodes will run well on a machine with 2 Core CPU, 4 GB RAM, and 1 GB high low latency internet connection with Linux x86_64 installed. - -Interested in participating as a solver? Join our solver channel [here](https://t.me/+Z69AYRzVTLVhNTk5). - -Solvers are able to onboard with MANTIS via the following steps: - -## Solver Setup - -### Requirements -1. A Cosmos compatible wallet holding PICA tokens on a valid Composable/Centauri chain address (Ex. Address format: centauri124l2ly8rgm4wjqgs50zzkzznxvqvve27uf6jr5) - -2. Clone the [MANTIS repository](https://github.com/ComposableFi/cvm/tree/main/mantis) and cargo to build mantis-node. As an alternative, you can use `nix run "github:ComposableFi/cvm#mantis-node -- ` - -3. An example of command line parameters used to run the solver can be found [here](https://github.com/ComposableFi/env/blob/a4bfeef449b5786f0d99f45e38a9acc306980fbb/flake.nix#L57) -(Note: the `--simulate` flag is optional) - -An example of problem formatting that will be broadcast to solvers may be found [here](https://github.com/ComposableFi/composable/blob/206e0da16a3543c6212f845372c926fcf49ecf21/docs/docs/technology/mantis/tutorial.md). - -Additional information for troubleshooting can be found on our Github [here](https://github.com/ComposableFi/composable/blob/206e0da16a3543c6212f845372c926fcf49ecf21/docs/docs/technology/mantis/solver-tutorial.md). - -### Trading Venues and Tokens for Testing -For the scope of testing, trading will be limited to Osmosis DEX and Astroport across the pairs outlined below. - -| **Osmosis** | **Neutron** | -| -------- | -------- | -| PICA/OSMO | NTRN/ATOM | -| ATOM/OSMO | - | -| NTRN/OSMO | - | - -Problems will be broadcasted in sizes ranging across $1, $5, $10 and $100. - -### Rewards and Incentives -Solvers participating in testnet will be awarded an incentive of $500 of PICA in addition to rewards calculated via activity during testing. The reward calculation for activity will be allocated as a percentage of funds processed through MANTIS (ie. funds exchanged via solutions to the intents that are broadcasted during testing). - -A scoring system has been implemented to rank solutions submitted via MANTIS based on a reference score and quality of solution, where `rewards = observedQuality - referenceScore`. The breakdown of this reward calculation may be referred to in the “Solver Rewards” section [here](../mantis/solvers-solutions.md). diff --git a/docs/docs/technology/mantis/solver-tutorial.md b/docs/docs/technology/mantis/solver-tutorial.md deleted file mode 100644 index cbe794b6afd..00000000000 --- a/docs/docs/technology/mantis/solver-tutorial.md +++ /dev/null @@ -1,39 +0,0 @@ -## How to run solver node - -Solver observes user orders on chain, and find matches, and posts solution so users get exchange. -If solver does not find match, formulates cross chain route. - -## Prerequisites - -You know how to build simple rust cargo project from git repositories or how to use nix. - -You know basics of blockchain, transactions, gas and easy can catch up with Cosmos specifics as needed based on Cosmos ecosystem docs. - -## Prepare - -1. Get wallet with PICA on Centauri - -2. Clone https://github.com/ComposableFi/cvm and `cargo run --bin mantis`. You can use `nix run "github:ComposableFi/cvm#mantis" --` as alternative. - -## Run - -Here is example of command line parameters used by solver run by us https://github.com/ComposableFi/env/blob/e9eaa098e103cb16f033e2abc26d09d79823da26/flake.nix#L49 . - -`--simulate` is optional, so is example how to provision own liquidity. - -## Troubleshoot - -In case of failure - read error. Usually it is: -1. timeout/rate limit by RP -2. bad wallet - no PICA or bad mnemonic -3. Node not hosted with process auto restart policy on failure as it should be -4. latency, if you picked slow RPC or host node on slow network - other solvers will be faster and solve instead o you - -## GTP bot - -You may consider train the bot by asking questions here https://discord.com/channels/828751308060098601/1163404253537247283 - -## How it works - -- [degen math](./degen-math.md) -- [problem solver flow](./problem-solver-flow.md) diff --git a/docs/docs/technology/mantis/solvers-solutions.md b/docs/docs/technology/mantis/solvers-solutions.md deleted file mode 100644 index 29bf1faf9fd..00000000000 --- a/docs/docs/technology/mantis/solvers-solutions.md +++ /dev/null @@ -1,130 +0,0 @@ -# Solvers & Solutions - -## Intent Submission: Problems -Users will be able to submit their intention along the MANTIS FE/UI/UX to form a problem from their intention. This information is used to establish the problem that will be sent to solvers. The user intention is formatted as: - -*I want to [function] [asset 1]...[asset n] for [asset 2]...[asset m].* - -Beginning and destination chain/location(s) may also be specified by the user. The user can further set limits for buy and sell orders. -Thus, fulfilling the submitted user intent requires solving: -- *[Token ID][Chain ID][Amount]1…n assets* -- Token ID and Chain ID are variable -- This is resolved to *Token ID Chain ID amount 1...n assets* - -The output that must be solved for is therefore: -- *Asset [1…n]* -- *Asset [2…m]* - -:::tip MANTIS Solvers -The solver role is critical to MANTIS and the chain-agnostic execution of user intents. To summarize the role, a solver takes in data about users’ intents, comes up with a solution to fulfill these as transactions, and is incentivized to do so. -If you are interested in solving for MANTIS or simply want to learn more about how MANTIS solvers work, refer to the following: -- [Discovering MANTIS Orders](https://github.com/ComposableFi/composable/blob/main/docs/docs/technology/mantis/tutorial.md) -- [Solving for MANTIS](https://github.com/ComposableFi/composable/blob/main/docs/docs/technology/mantis/solver-tutorial.md) -- [Solver Integration](https://github.com/ComposableFi/composable/blob/main/docs/docs/technology/mantis/problem-solver-flow.md) -::: - -## Discovering MANTIS orders - -In an interface on MANTIS, an intent/problem is sent via a smart contract of the Composable Virtual Machine to solvers. Thus, solvers are able to compete to come up with the best solution. - -The information that is provided to solvers is limited to just the user account and the user problem. - -The format of the problem that is sent from the problem smart contract to solvers is: - -```ts -const give = "1100000000" -const wants = "1000000000" - -print("one side of want") -const ppica = Coin.fromPartial({ denom: "ppica", amount: give }) -print(await client.order({ - msg: { - timeout: 100, - wants: { - denom: "pdemo", - amount: wants, - }, - } -}, - "auto", - null, - [ppica] -)) -``` - -- Available automated market makers and pools: Osmosis Pool Manager -- Preloaded tokens/incentives (described in more detail later) -- Any specified user limits on the order (i.e. maximum price) - -Once solvers receive the user problem, they are able to query the escrow contract to determine sufficient user funds. - -Within this interface, solvers are able to access the information they need to create and submit their solutions. - - -## Solving for MANTIS -Solvers implement a solution algorithm (which can be modified from Composable’s solution algorithm, which will be provided) that determines an optimal solution for each user intention. The user intention is framed as “*I want to [function] [asset 1]...[asset n] for [asset 2]...[asset m1]*”. Beginning and destination chain/location(s) may also be specified by the user. The user will also set limits for buy and sell orders. Once the user submits their transaction intent, their funds are moved into their virtual wallet in the Composable ecosystem. - -Then, the solver is able to address the user intent with the aim of optimizing cross-chain intent settlement. This involves the solver solving a path between: -- State 1 = [Token ID][Chain ID][Amount]1…n assets -- State 2= Token ID and Chain ID are variable - -The solution can be formed out of a combination of any of the following settlement/execution pathways: -- **Coincidence of Wants (CoWs)** - - Intents can be fully or partially matched with other intents so that they effectively are used to settle each other’s transaction. This is done along the principle of CoWs: that user intents can coincidentally be the opposite of other user intents (i.e. one intent to swap A for B and another to swap B for A form a CoW). -- **Constant Function Market Makers (CFMMs)** - - Solutions can be executed on CFMMs such as automated market makers (AMMs). -- **Market makers’ own liquidity** - - The solver will further play a market maker role. Similar to Hashflow, solvers will settle funds themselves by sending funds to a contract and settling funds directly with the user. - -Solvers will submit their proposed solution via an interface on MANTIS to the problem smart contract. The format of the solution is as follows: - -- \_Swap(x for y)\_ -- Bridge bribes + time to execution -- These calculations determine the net result: - - Total amount of assets [2..m] available, total lost to slippage and fees, and total time associated - -Solvers’ solutions, once submitted, will be scored for maximization of volume cleared and user welfare (i.e. minimization of slippage). The optimal solution will be selected based on this score. The winning solver (e.g. the solver providing the best solution) is then given access to user funds and approved to execute the user's intention along their specified solution pathway. Winning solvers will receive incentives/rewards, as described in the following section. - -### Protocol Bidding -An additional factor that solvers must consider in the auction process of determining the optimal solution is what we term “protocol bidding”. **This is a unique form of incentive wherein we enable protocols to bid for orderflow for transactions being settled from MANTIS.** - -Essentially, protocols are able to provide a bid in the form of tokens to the MANTIS framework. The size of this bid is considered by solvers in the algorithm that they use to determine an optimal settlement route for the user transaction intent. - -The bid volume is also taken into account when potential solutions are being scored, with solutions including protocols participating in bidding being ranked higher. As a result, protocols that bid to MANTIS increase their chances that MANTIS intent transactions will be settled using their platforms. The tokens bidded by these protocols will be used to offset user gas fees. - -Protocols would participate in bidding via a 3-step UI process, loading tokens for solvers, and then loading up tokens for gas rebates for users. Then, the relayer (and solvers, if both roles are combined) can take from the contracts post-settlement (once they have proof of fulfillment). - -Overall, this would work as follows: -1. Protocols (such as DEXes) top up the problem smart contract with certain tokens into certain pools -2. Solvers take the above into account in their solution calculations -3. If protocols are successfully chosen as a component of the solution for the solver (and this solver has presented the best solution out of all solvers), then the order flow is routed through the protocol - -This requires a problem smart contract within MANTIS, which would be able to receive pre-loaded tokens. -- Our "problem" contract would have `cvm-account` like any users -- All solution will be routed by MANTIS from the problem origin contract so it will have access to `cvm-account`` on each chain -- So, the problem contract will have access to any tokens on that account -- Reasonably, these accounts to have at least native tokens for gas fees and bridge fees -- Or, protocol can have `cvm-account` and do extended allowance to MANTIS sent from problem origin so the solution can peek into allowance and pay fees - -This would also require the UI for protocols to initiate and submit tokens for their campaigns, and then to subsequently monitor these campaigns. - -There are a number of benefits from such protocol bidding. First, protocols participating in campaigns will benefit from increased order flow (in fees, liquidity, etc.). This solution also improves the chances that a user’s transaction will be fulfilled, given that there are tokens readily available from these campaigns. - -Bidded tokens can also offset user gas fees, making the transaction less expensive for the user (or for the solver, if the solver is paying for users’ gas). Composable itself will benefit as well, as we can use this process to earn revenue before the rest of the stack is fully built up, allowing us to optimally continue to build our ecosystem. - -### Solver Rewards -Solvers will earn rewards from performing their role in MANTIS, as described above. These rewards will be allocated from a percentage of user funds processed through MANTIS. Rewards for the winning solver for each intent auction are calculated as follows: - -`solver rewards = observedQuality - referenceScore` - -In this equation, `solver rewards` are the amount distributed to the winning solver of a particular intent. - -The `referenceScore` is that of the second highest solution, as determined by our scoring system. - -The `observedQuality` relates to the quality of the settlement of a winning solution; more specifically this is the sum of the surplus generated from users and fees paid to the MANTIS framework. If the settlement fails, then `observedQuality` is zero. In this case of settlement failure, then the solver could end up paying the protocol, incentivizing solvers to present only feasible solutions to MANTIS. - -### Solver Algorithm -The MANTIS solver algorithm can be viewed [here](https://github.com/ComposableFi/cvm/tree/main/mantis/node/src/solver) - -The mathematical process with which we generated and tested this algorithm is detailed [here](https://github.com/ComposableFi/cvm/tree/main/mantis/simulation) - diff --git a/docs/docs/technology/mantis/tools.md b/docs/docs/technology/mantis/tools.md deleted file mode 100644 index 52ae00092c3..00000000000 --- a/docs/docs/technology/mantis/tools.md +++ /dev/null @@ -1,28 +0,0 @@ -# Tools -## Development Progress -As of November 15, 2023 MANTIS is in mainnet testing. Details of this testing period are as follows: - -Composable is running MANTIS and the Composable Virtual Machine (CVM) on mainnet. Osmosis, Neutron, and the Composable Cosmos chain will be accessible for cross-chain operations on the mainnet testing. - -## Testing Period -With mainnet deployment, we can begin getting user traction and initial use of MANTIS via a campaign “game”. In this campaign, users will be able to submit problems/intentions through the frontend. We will provide test tokens for this purpose, which users will be able to deposit in a basic user interface. - -Users will be given a small amount of PICA token (the native token of the Composable Cosmos chain and Picasso parachain on Kusama). Then, users can participate in the intention submission process with this PICA. A number of solvers on MANTIS will then solve and fill these orders in mainnet testing. These solvers will have needed to onboard with Composable prior to this testing period. - -At this point, we will also need validators running in order to support the network. We will have existing oracles and collators run these validators. - -Experiment/Test details are as follows: -- The goal is to have thousands of problems/intentions sent through MANTIS experimentally -- Swaps will occur between Composable and Neutron or Osmosis -- After this campaign, we will publish the results of these two weeks of mainnet testing and then ideally go to full production with Osmosis and Neutron etc. - -We will measure: - -- Swap volume -- Volume/proportion of solutions that were solved with coincidence of wants (CoWs) matching -- Volume/proportion of solutions that were solved with constant function market makers (CFMMs) -- Volume/proportion of solutions that were solved with solvers’ own liquidity - -The timeline for this is December 2023. - -Interested in participating as a solver? Join our solver channel on telegram [here](https://t.me/+Z69AYRzVTLVhNTk5). \ No newline at end of file diff --git a/docs/docs/technology/mantis/tutorial.md b/docs/docs/technology/mantis/tutorial.md deleted file mode 100644 index f1920d7108f..00000000000 --- a/docs/docs/technology/mantis/tutorial.md +++ /dev/null @@ -1,51 +0,0 @@ -# Overview - -This tutorial describes part of MANTIS describing running solver node and user to post problems. - -## Deployments - -### mantis-order contract - -| chain | stage | id | -| ---------- | ------- | ------------------------------------------------------------------- | -| centauri-1 | mainnet | centauri10tpdfqavjtskze6325ragz66z2jyr6l76vq9h9g4dkhqv748sses6pzs0a | -| osmosis-1 | mainnet | osmo1lmmer03c6m4al67782qum79ct0ajf87j23v7dpl3udhpv32mny7qhhw4qg | | -| neutron-1 | mainnet | | - -## User posts problemsni - -Example of problem you can see is here: - -```json -{ - "@type": "/cosmwasm.wasm.v1.MsgExecuteContract", - // ... - "msg": { - "order": { - "msg": { - "wants": { - "denom": "ppica", - "amount": "1000000" - }, - "transfer": null, - "timeout": 2506928, - "min_fill": null - } - } - }, - "funds": [ - { - "denom": "ibc/EF48E6B1A1A19F47ECAEA62F5670C37C0580E86A9E88498B7E393EB6F49F33C0", - "amount": "1" - } - ] -} -``` - -Or mainnet transaction https://ping.pub/composable/tx/CA9489EC961BA97AB514A74EEC6BF3B6CD9900C00A031AA3BB80DC343CE85F2D - -You can try live code with https://github.com/ComposableFi/composable/blob/main/code/cvm/mantis.ts . - -## GTP bot - -You may consider train the bot by asking questions here https://discord.com/channels/828751308060098601/1162324949277622333 diff --git a/docs/docs/technology/restaking.md b/docs/docs/technology/restaking.md index aeaef481b87..8066720c9d8 100644 --- a/docs/docs/technology/restaking.md +++ b/docs/docs/technology/restaking.md @@ -6,10 +6,6 @@ Restaking has been [described as a new primitive](https://consensys.io/blog/eige Economic security is a necessary construct for applications building in the decentralized space. [Eigenlayer](https://www.eigenlayer.xyz/) introduced ETH staking. Picasso is introducing restaking of assets on multiple Proof of Stake (PoS) networks to establish cross-ecosystem pooled security to Actively Validated Services (AVSes). -:::tip -The first opportunity for Restaking on Solana is live. Users have a chance to get in on the action early and earn boosted rewards through [MANTIS games](../technology/restaking/mantis-games.md) - a team staking competition on [mantis.app](https://mantis.app/). -::: - Restaking has been pioneered and popularized by EigenLayer, which is a protocol for restaking ETH on Ethereum. In particular, users staking ETH are able to opt into EigenLayer’s smart contracts for restaking their ETH and thus extending the crypto economic security to additional applications within the ecosystem. EigenLayer thus addresses rising concerns of fragmented security on Ethereum, helping to bootstrap the security of various protocols/applications. EigenLayer’s total value locked (TVL) at the time of writing is over $7.5 billion, indicating that there is a clear demand for restaking. Despite the benefits of restaking, this concept has largely not yet expanded beyond the Ethereum ecosystem. However, there is a huge potential for restaking on other chains. Leveraging the fact that Picasso is a L1 Cosmos SDK chain that is also a hub for cross-ecosystem IBC, we are able to make this restaking layer cross-chain. Thus, vaults associated with this system will exist exclusively on IBC-enabled chains. Registration and accounting of AVSes are managed on Picasso. Vault contracts are to be deployed on Solana, Picasso and Ethereum in H1. Picasso Generalized Restaking facilitates a broad spectrum of assets from PoS networks. In effect, this will enable a larger supply of tokens with a lower opportunity cost to be restaked, and therefore, decrease the cost of acquiring AVSes. diff --git a/docs/docs/technology/restaking/architecture.md b/docs/docs/technology/restaking/architecture.md index 7a7886484c5..077d452a6b4 100644 --- a/docs/docs/technology/restaking/architecture.md +++ b/docs/docs/technology/restaking/architecture.md @@ -76,9 +76,6 @@ This contract is responsible for updating the state of vaults deployed on variou ### Fishermen Protocol These are actors who ensure operators are being honest and signal if an operator is misbehaving and needs to be slashed. Anyone is allowed to become a Fisherman and rewards are provided to any misbehaviour reports via Slashing. -### CVM -Send stake and un-stake messages from PoS chains to Picasso Cosmos. Users can originate these requests from the PoS chains they restake assets. Additionally, users can (un)delegate their stake to operators of AVSes. These are all operations that are executed on the chain where the user assets live, and are propagated using CVM. - ### Slashing Contract The process involves detecting malicious behavior, initiating slashing requests, and executing specific steps based on the type of slashing chosen by the AVS. diff --git a/docs/docs/technology/restaking/governance.md b/docs/docs/technology/restaking/governance.md index 9fe3a2b0142..2c7f1858970 100644 --- a/docs/docs/technology/restaking/governance.md +++ b/docs/docs/technology/restaking/governance.md @@ -15,7 +15,7 @@ Signers for the multisig are as follows: - Miguel Matos — Board member, Composable Foundation. Professor at the Universidade de Lisboa & Researcher at INESC-ID. - Dan Edlebeck — Advisor, Composable -- Blas Rodriguez — CTO, Composable +- Blas Rodriguez — Advisor, Composable - Joe DeTommaso — Head of Strategy, Composable - Jafar Azam — Product Owner, Composable - Dhruv D Jain — Research Analyst, Composable diff --git a/docs/docs/technology/restaking/mantis-games.md b/docs/docs/technology/restaking/mantis-games.md deleted file mode 100644 index 86071c11fff..00000000000 --- a/docs/docs/technology/restaking/mantis-games.md +++ /dev/null @@ -1,35 +0,0 @@ -# MANTIS Games - -In order to bootstrap liquidity on the [restaking layer on Solana](../restaking/vaults.md), there will be a team competion in phase 2 of MANTIS Games. The MANTIS Games involve the following phases, all designed to make participation maximally enjoyable and rewarding: - -## Phase 1 - NFT Auction -Phase 1 introduces teams: during the course of MANTIS games, users can register to join a team on the MANTIS app. Along with your team, you will be able to participate in various competitions on [MANTIS](https://mantis.app/). - -In the first phase, NFTs were auctioned on the [Tensor marketplace](https://www.tensor.trade/) to serve as a mechanism for team leaders to create teams and compete within the Mantis platform. **Only NFT holders can be team leaders** who will receive 15% of rewards from their team, along with a 1.25x boost for their own deposits. If you are in the winning team, you will get the largest stake of reward in a given rewards pool. Moreover, purchasers of the NFT will get a percentage of the NFT sale. The collection can be viewed [here](https://www.tensor.trade/trade/mantis_games). - -Users without an NFT can join an existing team by getting a referral code from a team leader. You’ll still be eligible for boosted rewards if your team wins. The remaining 85% of the rewards will be distributed according to the percentage of the TVL that each group member contributed to his team’s total TVL. - -## Phase 2 - Team Staking Competition -Phase 2 is going live on Sunday the 28th of January. Teams will compete for who can attract the highest amount of assets restaked into the restaking layer via the [MANTIS app](https://mantis.app/) (restaked assets include mSOL, jitoSOL, bSOL and SOL). In this phase, there will be three rounds of deposits with caps on the amount of tokens that can be deposited in the vaults. - -The parameters will be set in the following three rounds: - -- Round 1: 50,000 SOL -- Round 2: 150,000 SOL -- Round 3: 500,000 SOL - - -### Rewards -There will be 35,000,000 PICA allocated to reward vault participants. Once the Solana IBC connection launches, restaked assets will be allocated to validators and users begin accruing staking rewards in the form of transfer revenue. - -The team that wins the competition, will receive 80% of transfer revenue for the first 30 days of activity on the Solana IBC bridge. - -The Restaking Vaults feature a reward pool of 35 million PICA tokens. Notably, 20% of this pool, will be distributed during the Token Generation Event (TGE) of PICA on Solana coinciding with the launch of IBC on Solana. The remaining 80% will be vested evenly over a 3-month period following the conclusion of the team competition. - -**It’s essential that users are aware of the implications of entering the vaults and ramifications on their rewards, should they choose to unstake before rewards have fully vested.** During the MANTIS Games Competition (restaking vaults), user assets will be locked within the contracts until the launch of Solana IBC. - -Once IBC on Solana is launched, users will be able to unstake their assets, but their rewards will be penalized under the following conditions: - -- If a user decides to unstake some percentage of SOL before the end of the vesting period, they will forfeit a corresponding percentage of their rewards. E.g. If a user decides to unstake 10% of their SOL holdings in the first month, they will forfeit 10% of the remaining vested rewards scheduled for the second and third months -- Complete early unstaking results in forfeiture of all rewards except the initial 20% received at the launch of Solana IBC. - diff --git a/docs/docs/technology/restaking/vaults.md b/docs/docs/technology/restaking/vaults.md index 035b6a9dc7a..b7e88bc7687 100644 --- a/docs/docs/technology/restaking/vaults.md +++ b/docs/docs/technology/restaking/vaults.md @@ -1,6 +1,6 @@ # Solana Restaking Vaults -The [Restaking Vaults on Solana](https://github.com/ComposableFi/emulated-light-client/blob/master/solana/restaking/README.md) offers users a secure and flexible way to **stake various Solana ecosystem tokens and delegate tokens to validators in order to secure the [AVS for Solana IBC](../ibc/restaking/sol-ibc-avs.md)**. Understanding the processes outlined in this documentation will enable users to be a part of implementing [IBC on Solana](../ibc/solana.md) and engage with the Restaking vaults effectively. +The [Restaking Vaults on Solana](https://github.com/ComposableFi/emulated-light-client/blob/master/solana/restaking/README.md) offers users a secure and flexible way to **stake various Solana ecosystem tokens and delegate tokens to validators in order to secure the [AVS for Solana IBC](../ibc/solana.md)**. Understanding the processes outlined in this documentation will enable users to be a part of implementing [IBC on Solana](../ibc/solana.md) and engage with the Restaking vaults effectively. The Restaking Vaults on Solana provide users the opportunity to stake SOL (Solana) and earn additional yield on Solana LSTs (Liquid Staked Solana tokens). The vaults are currently live on [mantis.app](https://www.mantis.app/) and will remain open until the launch of [Solana IBC](../ibc/solana.md). Once launch occurs, the assets will be assigned to secure the [AVS for Solana IBC](../restaking/sol-ibc-avs.md). @@ -9,21 +9,19 @@ Deposits in the vault will remain locked until the implementation of IBC on Sola ::: ## Token Types -Users can stake SOL and SOL LSTs (jitoSOL, mSOL and bSOL) in phase 1 of the restaking vault, and in phase 2, Orca LP tokens and receipt tokens from other platforms will also be eligible for staking. When users stake into the vault, they receive an NFT as a receipt token. This NFT serves as a unique identifier for the staked tokens, similar to the Uni V3 NFT receipt tokens. Once users stake their tokens in the vault, they are locked up until the launch of IBC on Solana. - -Each of the following tokens represents a significant market that can now be restaked on [mantis.app](https://www.mantis.app/). If you hold any of these tokens, you can enhance your yield by restaking them to provide security for the AVS for Solana IBC. - -**SOL:** -As mentioned, Solana (SOL) is the native token of the Solana ecosystem. Its total market cap at the time of writing is over $28 billion dollars, making SOL the 6th largest token in terms of total market cap (as per CoinMarketCap). Also as mentioned, 92% of SOL is presently staked, but the remaining 8% of the circulating amount is unstaked, and still represents a huge market (around $3 billion). Thus, we are accepting SOL staking in addition to restaking options. - -**mSOL:** -mSOL is the liquid staking token from [Marinade Finance](https://marinade.finance/), a Solana stake automation protocol monitoring all Solana validators and delegating to those that are the highest performing (e.g. provide the largest yield to users). [Blockworks Research](https://www.blockworksresearch.com/research/marinade-finance-the-base-layer-for-solana-defi) has described this token as the “...base layer of Solana DeFi”. According to Marinade’s website, they have a TVL of $659 million (nearly 10 million SOL staked), and provide users with an impressive 8.87% APY. - -**jitoSOL:** -jitoSOL is the liquid staking token from [Jito](https://www.jito.network/), which [describes itself](https://www.jito.network/docs/jitosol/overview/) as “Solana’s first staking product including MEV rewards”. Users deposit SOL into Jito’s liquid staking pool, and then SOL is delegated to validators on Solana that meet minimum criteria for performance and network resiliency. Jito’s total TVL is 6,352,926 SOL, and they provide stakers with a 6.97% APY ([as per Jito’s website](https://www.jito.network/stats/)). - -**bSOL** -BlazeStake is a Solana staking protocol that provides bSOL (liquid staked SOL tokens) that are usable in DeFi platforms. BlazeStake decentralizes Solana by automatically distributing staked SOL among validators. bSOL's value grows each epoch relative to staking APY, backed by compounding staking rewards in SOL. +Each of the following tokens represents a significant market that can now be restaked on [app.picasso.network](https://app.picasso.network/solana-staking/). If you hold any of these tokens, you can enhance your yield by restaking them to provide security for the AVS for Solana IBC. Users can stake: + +- SOL +- mSOL +- jitoSOL +- LST +- bSOL +- hSOL +- edgeSOL +- hausSOL +- jupSOL + +When users stake into the vault, they receive an NFT as a receipt token. This NFT serves as a unique identifier for the staked tokens, similar to the Uni V3 NFT receipt tokens. Once users stake their tokens in the vault, they are locked up until the launch of IBC on Solana. ## Delegation Options Upon the launch of the bridge, users have the option to delegate their staked tokens to a validator. Users can choose to delegate to a validator of their choice, delegate to their own validator, or if they opt for neither of these, a validator will be randomly delegated the tokens. diff --git a/docs/docs/user-guides/dot-lp-guide.md b/docs/docs/user-guides/dot-lp-guide.md deleted file mode 100644 index 0485d0a7be1..00000000000 --- a/docs/docs/user-guides/dot-lp-guide.md +++ /dev/null @@ -1,40 +0,0 @@ -# How to LP & stake DOT on Pablo via Trustless Zone - -The [IBC](../technology/ibc.md) DOT-KSM connection serves as the first transfer protocol between Kusama (KSM) and Polkadot (DOT), unlocks the potential for a seamless flow of liquidity between parachains on both networks. Token transfers are a prime example of this, enabling increased liquidity across protocols on both chains. It is important to note that IBC powers functionality beyond token transfers and unlocks composability between Polkadot and Kusama. One could possibly send XCM messages using IBC as a transport layer. This would enable XCM execution on Kusama or a Kusama parachain sent from Polkadot or a Polkadot parachain. - -This guide outlines the steps involved in transferring DOT from Polkadot to Picasso using XCM and IBC to provide liquidity on [Pablo](../technology/pablo-overview.md). - -There are two steps required to complete the process: - -1. Multihop DOT from Polkadot to [Picasso](../networks/picasso-parachain-overview.md) -2. Provide liquidity & stake using DOT paired with various pools on Pablo - - -## Multihop DOT from Polkadot to Picasso - -Head to [app.trustless.zone](https://app.trustless.zone/) and select `Polkadot` and `Picasso` as the source and destination chains respectively. Enter the amount you wish to transfer, press 'Send' and sign the transaction. - -![trustless-1](./images-dot-lp-guide/ibc-dot-picasso.png) -## Provide liquidity to DOT pairs on Pablo - -On [app.pablo.finance](https://app.pablo.finance/), connect your wallet and navigate to the "Provide liquidity" page. - -Choose one of the available pools (in this guide, we will use PICA/DOT). - -![pablo-1](./images-dot-lp-guide/pablo-lp-1.png) - -Enter the PICA/DOT pool page and select "Add Liquidity". Enter the amount you wish to deposit and select "Add Liquidity" once more. - -A pop-up will appear to confirm the transaction by clicking "Confirm" and then sign the transaction. - -A "Transaction success" notification will appear and you can click the notification to view the transaction on Subscan. - - -![pablo-2](./images-dot-lp-guide/pablo-lp-2.png) - -Head back to the pool overview page and click "Stake". Enter the amount of LP tokens you wish to stake and click "Stake PICA-DOT" to start earning rewards on your LP position. You will be asked to sign the transaction with your password. - -![pablo_3](./images-dot-lp-guide/stake-3.png) - - -Congratulations! You have successfully staked liquidity on Pablo. \ No newline at end of file diff --git a/docs/docs/user-guides/how-to-provide-liquidity.md b/docs/docs/user-guides/how-to-provide-liquidity.md deleted file mode 100644 index a91c76071c6..00000000000 --- a/docs/docs/user-guides/how-to-provide-liquidity.md +++ /dev/null @@ -1,45 +0,0 @@ -# How to stake your LP tokens on Pablo - -Providing liquidity on a decentralized exchange (DEX) like Pablo can be a way to earn passive income by providing assets to liquidity pools. -Here is a guide on how to provide liquidity on the Pablo DEX. - -The Picasso Council has proposed a fee of 0.3% for the inaugural pools. Users who provide liquidity to these pools can earn a share of the fees that the pools generate. The fees for swapping, buying or selling tokens are calculated as a percentage of the swap size and are distributed among liquidity providers based on their share of the pool. - -To learn how to swap tokens on Pablo, you can follow a step-by-step tutorial provided in this guide. - -## How to provide liquidity - -1. On [app.pablo.finance], connect your wallet and navigate to the "Provide liquidity" page. Select one of the available pools; this guide will use the PICA/KSM pool as an example. - -[app.pablo.finance]: https://app.pablo.finance - -![pool_page](./images-how-to-provide-liquidity/pool-page.png) - -2. On the overview of the selected pool, Click 'Add liquidity'. - -![pica_ksm_pool](./images-how-to-provide-liquidity/pica-ksm-pool.png) - -3. Enter the amount of Token A. Please note that an equal amount for the corresponding asset paired (Token B) will be automatically calculated. Once you've entered the amounts, click on "Add liquidity". - -![transaction_details](./images-how-to-provide-liquidity/transaction-details.png) - -4. Review transaction details in the pop-up and click "Confirm". You will be asked to sign the transaction using your password. - -![confirm_supply](./images-how-to-provide-liquidity/confirm-supply.png) - -:::info - -The notification "Transaction in progress" will appear as the transaction is being processed. Once confirmed, users can be redirected to view their transaction on Subscan by clicking the 'click to view' in the notification. - -![transaction_finalized](./images-how-to-provide-liquidity/transaction-finalized.png) -::: - -5. You have successfully provided liquidity on Pablo. To start earning staking rewards on your LP tokens, head back to the pool overview page and select "Stake". - -![stake_mission_start](./images-how-to-provide-liquidity/stake-me-baby.png) - -6. Enter the amount of LP tokens you wish to stake and confirm your stake by pressing "Stake PICA-KSM" (PICA-KSM is the liquidity pool used in this example). You will be asked to sign the transaction using your password. - -![stake_mission_accomplished](./images-how-to-provide-liquidity/wagyu-stake.png) - -A transaction success notification will appear where you can be redirected to view your transaction on Subscan. Congratulations, you have now staked your LP tokens to earn rewards. \ No newline at end of file diff --git a/docs/docs/user-guides/how-to-trade-pica-on-pablo.md b/docs/docs/user-guides/how-to-trade-pica-on-pablo.md deleted file mode 100644 index 4b7bba89c9a..00000000000 --- a/docs/docs/user-guides/how-to-trade-pica-on-pablo.md +++ /dev/null @@ -1,37 +0,0 @@ -# How to trade $PICA on Pablo - -This introductory guide explores how users can trade PICA on [Pablo](https://www.pablo.finance/), as well as other tokens such as KSM, USDT and DOT. Pablo is a new-generation Decentralized Exchange (DEX) and the first protocol to launch on Picasso. - -## How to trade on Pablo - -1. On [app.pablo.finance], go to the ‘Swap’ page. Connect your wallet if necessary. Read our guides [how to create and connect a wallet]. - -[app.pablo.finance]: https://app.pablo.finance/ -[how to create and connect a wallet]: https://docs.composable.finance/accounts-wallets - -![swap_page](./images-how-to-trade/swap-page.png) - -2. To initiate a token swap for PICA, choose the token you wish to trade from the available options of USDT, KSM, and DOT. In this guide, we will use DOT for the swap. - -![token_select](./images-how-to-trade/token-select.png) - -By clicking the 'settings' ⚙️ icon, users can change the token utilized for paying gas fees, adjust their slippage tolerance and change the input to the USD value or the number of tokens. - -![transaction_settings](./images-how-to-trade/transaction-settings.png) - -:::info - -Slippage on decentralized exchanges is the difference between the expected and actual price of a trade, caused by asset volatility and low liquidity. It can impact trade cost and profitability. - -::: - -3. Once you have specified an amount for the selected pair you want to trade, press "Swap". You will be asked to sign the transaction using your password. - - -![sign_transaction](./images-how-to-trade/sign-transaction.png) - -4. Once your transaction is complete, a 'Transaction success' message will appear to confirm the transaction. You can view your transaction details on Subscan by clicking 'click to view'. - -![transaction_finalized](./images-how-to-trade/transaction-finalized.png) - -You have now successfully completed a token swap on Pablo. Further user guides are available for interacting with Picasso, Pablo and Centauri [here](../user-guides/). diff --git a/docs/docs/user-guides/images-dot-lp-guide/ibc-dot-picasso.png b/docs/docs/user-guides/images-dot-lp-guide/ibc-dot-picasso.png deleted file mode 100644 index f5bd63da90b..00000000000 --- a/docs/docs/user-guides/images-dot-lp-guide/ibc-dot-picasso.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b75eeb13c4504e548b208dc2311ef79f581aa604ce56d1a2fab47f5080d9d07 -size 123440 diff --git a/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-1.png b/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-1.png deleted file mode 100644 index e86b0f2bb79..00000000000 --- a/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72f20386e4da563a169c7dd5586ce9cb43771a60e0ad7b08cb7cd09a195359da -size 332100 diff --git a/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-2.png b/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-2.png deleted file mode 100644 index 38f02d6576e..00000000000 --- a/docs/docs/user-guides/images-dot-lp-guide/pablo-lp-2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7058775b09ef0d8af0844210a261f39bb3e53dddb72876b0b663c7ce1c54234 -size 1140056 diff --git a/docs/docs/user-guides/images-dot-lp-guide/stake-3.png b/docs/docs/user-guides/images-dot-lp-guide/stake-3.png deleted file mode 100644 index dad37739a52..00000000000 --- a/docs/docs/user-guides/images-dot-lp-guide/stake-3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25b442ba02efa7d0b473c7a0968360006350ff86c0145f8856dfaffc1498ded5 -size 422640 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/confirm-supply.png b/docs/docs/user-guides/images-how-to-provide-liquidity/confirm-supply.png deleted file mode 100644 index 11eb32ecd60..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/confirm-supply.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c2a139280d6b371512f5cad87c073261edb4c41c80d05516359a6bc3965b7a23 -size 454320 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/pica-ksm-pool.png b/docs/docs/user-guides/images-how-to-provide-liquidity/pica-ksm-pool.png deleted file mode 100644 index fcd7bedd6ff..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/pica-ksm-pool.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57345b9b4ff0290d376a259fb8c904b1f0c9ebaaf4a362ff44019f2b637d2621 -size 1192876 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/pool-page.png b/docs/docs/user-guides/images-how-to-provide-liquidity/pool-page.png deleted file mode 100644 index f0fdbb317c5..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/pool-page.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe1f7a22fb81afa90a1638949f28bd528d13ccd2423378e674fa8fafb3e739a4 -size 826182 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/sign-transaction.png b/docs/docs/user-guides/images-how-to-provide-liquidity/sign-transaction.png deleted file mode 100644 index b03ee4318ca..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/sign-transaction.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9329fdcfbe7bc66f8ba3ea3ee2695fda24569aebf7a51cdff7b93f7e9ecb58f -size 1782671 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/stake-me-baby.png b/docs/docs/user-guides/images-how-to-provide-liquidity/stake-me-baby.png deleted file mode 100644 index f5922c22231..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/stake-me-baby.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d4903a19896bbb1a8aca770d19ffc544729a7ec883207711e8898d8467f0f2c -size 1215622 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-details.png b/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-details.png deleted file mode 100644 index c6980490f9e..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-details.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d6c6463648ce2ac636af619422ce871c95dcdd0c18c5167a7621cfaf116c379 -size 1604505 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-finalized.png b/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-finalized.png deleted file mode 100644 index 57574526c2e..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/transaction-finalized.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87575800d26863052e77715ea84c290120352031980410e2bc934def4ba361da -size 91101 diff --git a/docs/docs/user-guides/images-how-to-provide-liquidity/wagyu-stake.png b/docs/docs/user-guides/images-how-to-provide-liquidity/wagyu-stake.png deleted file mode 100644 index d63b4f6926c..00000000000 --- a/docs/docs/user-guides/images-how-to-provide-liquidity/wagyu-stake.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:004600ef61c42f17a0260a0c4206e7653c488fa91475043759d56b38c08b01bf -size 437591 diff --git a/docs/docs/user-guides/images-how-to-trade/sign-transaction.png b/docs/docs/user-guides/images-how-to-trade/sign-transaction.png deleted file mode 100644 index 48934a2632e..00000000000 --- a/docs/docs/user-guides/images-how-to-trade/sign-transaction.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d01f5af5bc6eff1b2ee1b70200dae4d2ea134770bbbb151f3d3ee234ad38948c -size 1865800 diff --git a/docs/docs/user-guides/images-how-to-trade/swap-page.png b/docs/docs/user-guides/images-how-to-trade/swap-page.png deleted file mode 100644 index 58ded32bcb6..00000000000 --- a/docs/docs/user-guides/images-how-to-trade/swap-page.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23c1b64e8f340c8234a667e3219652204903ab1c56948bf0f0bb6d86dfd61d92 -size 2002926 diff --git a/docs/docs/user-guides/images-how-to-trade/token-select.png b/docs/docs/user-guides/images-how-to-trade/token-select.png deleted file mode 100644 index 008368aef41..00000000000 --- a/docs/docs/user-guides/images-how-to-trade/token-select.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:355609bc9822500236c7e4aa8334ba82a5771e1278167737c6d024d6fb6ec174 -size 311652 diff --git a/docs/docs/user-guides/images-how-to-trade/transaction-finalized.png b/docs/docs/user-guides/images-how-to-trade/transaction-finalized.png deleted file mode 100644 index 01b4f5c0921..00000000000 --- a/docs/docs/user-guides/images-how-to-trade/transaction-finalized.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4810b4ad74f84cddb96f3ecaea91d0c040fe5bb3e8bd93d5aa3124074433b13f -size 94022 diff --git a/docs/docs/user-guides/images-how-to-trade/transaction-settings.png b/docs/docs/user-guides/images-how-to-trade/transaction-settings.png deleted file mode 100644 index 43ca0dd5d82..00000000000 --- a/docs/docs/user-guides/images-how-to-trade/transaction-settings.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:725e026eee09386b0aa2551ef510837bd9352cad8e0279845e62a8aedc910c60 -size 419482 diff --git a/docs/docs/user-guides/images-team-competition/create-team.png b/docs/docs/user-guides/images-team-competition/create-team.png deleted file mode 100644 index ccb4e6a9abb..00000000000 --- a/docs/docs/user-guides/images-team-competition/create-team.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57ab7e536ba508f3e54606e971923fe7317bb02db4961c829643dfc18d9072b0 -size 660287 diff --git a/docs/docs/user-guides/images-team-competition/dashboard.png b/docs/docs/user-guides/images-team-competition/dashboard.png deleted file mode 100644 index 62ac1acd81c..00000000000 --- a/docs/docs/user-guides/images-team-competition/dashboard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7426b4b687ef835506fcb42c6dc4b2fb12b03fc03d26cd66e727f5d80e9f0fb5 -size 265317 diff --git a/docs/docs/user-guides/images-team-competition/join-team.png b/docs/docs/user-guides/images-team-competition/join-team.png deleted file mode 100644 index 53b0958cecb..00000000000 --- a/docs/docs/user-guides/images-team-competition/join-team.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a27e7841a0b6dfb6897c4b6e99c04a33b14546bef1deccd6ccc26b7ceff3801 -size 650599 diff --git a/docs/docs/user-guides/images-team-competition/team-success.png b/docs/docs/user-guides/images-team-competition/team-success.png deleted file mode 100644 index e27d5b0c08a..00000000000 --- a/docs/docs/user-guides/images-team-competition/team-success.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ac43f9e4c90e4fbc14693cdae08b6ab4a25df8a76d6f95df69d5cedf55ee213 -size 628438 diff --git a/docs/docs/user-guides/restaking-sol.md b/docs/docs/user-guides/restaking-sol.md index 46460251aac..0871dbe4992 100644 --- a/docs/docs/user-guides/restaking-sol.md +++ b/docs/docs/user-guides/restaking-sol.md @@ -1,6 +1,6 @@ # How to Restake your tokens -The [MANTIS app](https://games.mantis.app/) enables you to restake your assets effortlessly using intents. You will need a Phantom wallet to interact with the application. Just prompt the token and amount you want to stake or follow the suggestions. +The [Picasso app](https://app.picasso.network/solana-staking/)) enables you to restake your assets effortlessly using intents. You will need a Phantom wallet to interact with the application. Just prompt the token and amount you want to stake or follow the suggestions. After connecting your wallet, you will see the following screen. Currently, you can either restake bSOL, mSOL, jitoSOL or SOL (staking SOL occurs via converting SOL into wSOL and then transferring it to the vault). @@ -9,9 +9,8 @@ After connecting your wallet, you will see the following screen. Currently, you Once your intent is expressed as displayed below, you’ll need to approve the transaction with your wallet. :::info -The fee to mint an NFT is 0.03 SOL, this amount will be returned to your account once the NFT is burned. You can read more about this process [here](../technology/solana-restaking/vaults.md). +The fee to mint an NFT is 0.03 SOL, this amount will be returned to your account once the NFT is burned. You can read more about this process [here](../technology/restaking/vaults.md). ::: ![intent](../user-guides/images-restaking-guide/restaking-2.png) -Congratulations, you are now restaking your tokens! Compete to win the competition and receive 80% of transfer revenue for 30 days in the [Team Restaking Competition](../technology/solana-restaking/mantis-games.md). \ No newline at end of file diff --git a/docs/docs/user-guides/team-competition.md b/docs/docs/user-guides/team-competition.md deleted file mode 100644 index 294d31798cb..00000000000 --- a/docs/docs/user-guides/team-competition.md +++ /dev/null @@ -1,23 +0,0 @@ -# How to create & join a Team in MANTIS Games - -## How to create a team - -To create a team, you need to be an NFT holder of the [MANTIS Games collection on Tensor](https://www.tensor.trade/trade/mantis_games). First [connect your wallet](https://games.mantis.app/) and head to the Leaderboard section. - -![dashboard](../user-guides/images-team-competition/dashboard.png) - -Click on “Create team”, enter your team name and upload your MANTIS Games NFT. The app will automatically detect your NFT. Select one in the upload NFT section, if you have multiple. - -![create-team](../user-guides/images-team-competition/create-team.png) - -Congratulations, you are now a team leader! To invite users to your team, share your team code. - -![creation-complete](../user-guides/images-team-competition/team-success.png) - -## How to join a team - -Once your wallet is connected on [connect your wallet](https://games.mantis.app/), head to the Leaderboard section. You will need a referral code to join a team. - -Click on “Join team” and enter the invite code. Keep in mind that you will not be able to leave and rejoin other teams. If you don’t have a team code yet, you can try to find a team on X or via the Composable Telegram/Discord. - -![join-team](../user-guides/images-team-competition/join-team.png) \ No newline at end of file diff --git a/docs/docs/user-guides/trustless-transfers.md b/docs/docs/user-guides/trustless-transfers.md index 1fc67b5076d..cbd06f65d78 100644 --- a/docs/docs/user-guides/trustless-transfers.md +++ b/docs/docs/user-guides/trustless-transfers.md @@ -4,10 +4,10 @@ Composable implemented the first IBC implementation that operates outside of the In this guide, PICA will be transferred between Picasso and Osmosis however, you can also transfer DOT from Polkadot to Osmosis in one click. -Head to https://app.trustless.zone/ and connect both, your Polkadot and Cosmos wallets. +Head to https://app.picasso.network/ and connect both, your Polkadot and Cosmos wallets. ![transfer](./images-trustless-transfer/trustless-transfer.png) Enter the amount of PICA and click 'Transfer'. A pop-up asking you to sign your transaction will appear, approve the transaction. -Transactions can take up to 2-5 minutes to complete, you can view the progress on https://explorer.trustless.zone/ \ No newline at end of file +Transactions can take up to 2-5 minutes to complete, you can view the progress on https://explorer.picasso.network/ \ No newline at end of file diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 73ff788540e..4d0438599b2 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -101,6 +101,11 @@ const config = { position: 'left', label: 'Guides', }, + { + href: 'https://docs.mantis.app', + label: 'Mantis', + position: 'right', + }, { href: 'https://research.composable.finance', label: 'Research', @@ -146,7 +151,7 @@ const config = { }, { label: 'Press Kit', - href: 'https://docs.composable.finance/ecosystem/press-kit', + href: 'https://www.picasso.network/brand-kit', }, { label: 'Risk Factors', diff --git a/docs/sidebars.js b/docs/sidebars.js index e1fc46cd4b5..a68ffef1030 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -54,9 +54,7 @@ }, collapsible: true, items: [ - "user-guides/restaking-sol", - "user-guides/team-competition", - ], + "user-guides/restaking-sol", ], }, { type: "category", @@ -68,9 +66,6 @@ collapsible: true, items: [ "user-guides/pica-staking", - "user-guides/how-to-provide-liquidity", - "user-guides/how-to-trade-pica-on-pablo", - "user-guides/dot-lp-guide", "user-guides/trustless-transfers", ], }, @@ -89,7 +84,6 @@ "develop/picasso", "develop/solana-avs-mainnet", "develop/local-picasso-guide", - "develop/oracle-set-up-guide", "develop/collator-guide", "develop/nix", "develop/codespaces", @@ -110,6 +104,7 @@ items: [ "technology/ibc/ethereum", "technology/ibc/solana", + "technology/ibc/bitcoin", "technology/ibc/polkadot", "technology/ibc/polkadot-kusama", "technology/ibc/near", @@ -158,7 +153,6 @@ restaking: [ "technology/restaking/use-cases", "technology/restaking/sol-ibc-avs", "technology/restaking/vaults", - "technology/restaking/mantis-games", "technology/restaking/roadmap" ], },