Skip to content
This repository was archived by the owner on Dec 8, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitbook/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
* [The Graph](https://docs.substreams.dev/documentation/how-to-guides/injective)
* [EVM Developers](developers-evm/README.md)
* [EVM Network Information](developers-evm/network-information.md)
* [Exchange Integrations Cheatsheet](developers-evm/exchgange-integrations-cheat-sheet-evm.md)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix broken documentation link: filename mismatch in path.

The path references exchgange-integrations-cheat-sheet-evm.md (misspelled) but the actual file is named exchange-integrations-cheat-sheet-evm.md. This will result in a broken link in the documentation.

Apply this diff to correct the path:

- * [Exchange Integrations Cheatsheet](developers-evm/exchgange-integrations-cheat-sheet-evm.md)
+ * [Exchange Integrations Cheatsheet](developers-evm/exchange-integrations-cheat-sheet-evm.md)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* [Exchange Integrations Cheatsheet](developers-evm/exchgange-integrations-cheat-sheet-evm.md)
* [Exchange Integrations Cheatsheet](developers-evm/exchange-integrations-cheat-sheet-evm.md)
🤖 Prompt for AI Agents
In .gitbook/SUMMARY.md around line 138 the link path contains a typo
"exchgange-integrations-cheat-sheet-evm.md" which doesn't match the actual file
name; update that entry to the correct filename
"exchange-integrations-cheat-sheet-evm.md" so the link points to the existing
document (ensure only the filename is changed and spacing/markdown list
formatting is preserved).

* [Your First EVM Smart Contract](developers-evm/smart-contracts/README.md)
* [Compile with Hardhat](developers-evm/smart-contracts/compile-hardhat.md)
* [Test with Hardhat](developers-evm/smart-contracts/test-hardhat.md)
Expand Down
60 changes: 60 additions & 0 deletions .gitbook/developers-evm/exchange-integrations-cheat-sheet-evm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Exchange Integrations Cheatsheet

If you are an exchange (either CEX or DEX), itegrating with Injective Mainnet, this page is for you!

## Injective's MultiVM architecture

Injective supports **both** Cosmos and EVM transactions.
There are, therefore two different ways to perform several operations.
As an exchange, most likely you are primarily concerned about how this impacts the following activity:

Comment on lines +1 to +10
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix typo in introduction.

Line 3 has a spelling error.

Apply this diff:

- If you are an exchange (either CEX or DEX), itegrating with Injective Mainnet, this page is for you!
+ If you are an exchange (either CEX or DEX), integrating with Injective Mainnet, this page is for you!
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Exchange Integrations Cheatsheet
If you are an exchange (either CEX or DEX), itegrating with Injective Mainnet, this page is for you!
## Injective's MultiVM architecture
Injective supports **both** Cosmos and EVM transactions.
There are, therefore two different ways to perform several operations.
As an exchange, most likely you are primarily concerned about how this impacts the following activity:
# Exchange Integrations Cheatsheet
If you are an exchange (either CEX or DEX), integrating with Injective Mainnet, this page is for you!
## Injective's MultiVM architecture
Injective supports **both** Cosmos and EVM transactions.
There are, therefore two different ways to perform several operations.
As an exchange, most likely you are primarily concerned about how this impacts the following activity:
🤖 Prompt for AI Agents
.gitbook/developers-evm/exchange-integrations-cheat-sheet-evm.md lines 1-10: fix
the spelling mistake in the introduction by replacing "itegrating" with
"integrating" so the sentence reads "If you are an exchange (either CEX or DEX),
integrating with Injective Mainnet, this page is for you!".

- Transfers of cryptocurrency
- Transfers of fungible tokens
- Transfers of non-fungible tokens

## Cosmos and EVM transactions

When can you use Cosmos transactions?
When can you use EVM transactions?
The answer varies depending on the asset that is being transferred.

When transferring INJ, the cryptocurrency of the Injective network:

- All all cases, you may use **either** Cosmos transactions or EVM transactions, they are equivalent.

When transferring fungible tokens, you must first check what type of fungible token it is:

- If it implements the [MultiVM Token Standard (MTS)](./multivm-token-standard.md),
you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
- This is because MTS tokens are simultaneously both a Denom and an ERC20.
- If it is a Denom (and not MTS), you may only use Cosmos transactions.
- If it is an ERC20 (and not MTS), you may only use EVM transactions.

When transferring non-fungible tokens:

- If it is a Cosmos NFT (`x/nft`), you may only use Cosmos transactions.
- If it is an ERC721, you may only use EVM transactions.

Comment on lines +15 to +37
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix grammar error: duplicate word.

Line 23 repeats "all" — this should read "In all cases" instead of "All all cases".

Apply this diff:

- - All all cases, you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
+ - In all cases, you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Cosmos and EVM transactions
When can you use Cosmos transactions?
When can you use EVM transactions?
The answer varies depending on the asset that is being transferred.
When transferring INJ, the cryptocurrency of the Injective network:
- All all cases, you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
When transferring fungible tokens, you must first check what type of fungible token it is:
- If it implements the [MultiVM Token Standard (MTS)](./multivm-token-standard.md),
you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
- This is because MTS tokens are simultaneously both a Denom and an ERC20.
- If it is a Denom (and not MTS), you may only use Cosmos transactions.
- If it is an ERC20 (and not MTS), you may only use EVM transactions.
When transferring non-fungible tokens:
- If it is a Cosmos NFT (`x/nft`), you may only use Cosmos transactions.
- If it is an ERC721, you may only use EVM transactions.
## Cosmos and EVM transactions
When can you use Cosmos transactions?
When can you use EVM transactions?
The answer varies depending on the asset that is being transferred.
When transferring INJ, the cryptocurrency of the Injective network:
- In all cases, you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
When transferring fungible tokens, you must first check what type of fungible token it is:
- If it implements the [MultiVM Token Standard (MTS)](./multivm-token-standard.md),
you may use **either** Cosmos transactions or EVM transactions, they are equivalent.
- This is because MTS tokens are simultaneously both a Denom and an ERC20.
- If it is a Denom (and not MTS), you may only use Cosmos transactions.
- If it is an ERC20 (and not MTS), you may only use EVM transactions.
When transferring non-fungible tokens:
- If it is a Cosmos NFT (`x/nft`), you may only use Cosmos transactions.
- If it is an ERC721, you may only use EVM transactions.
🤖 Prompt for AI Agents
.gitbook/developers-evm/exchange-integrations-cheat-sheet-evm.md around lines 15
to 37: fix the duplicated word in the INJ transfer section by replacing the
phrase "All all cases, you may use **either** Cosmos transactions or EVM
transactions, they are equivalent." with the corrected phrasing "In all cases,
you may use **either** Cosmos transactions or EVM transactions, they are
equivalent."

## Designing for optimal user experience

In an exchange, you cannot expect all, but the most technically adept of,
retail users to comprehend/ navigate the above.
Thus, we strongly recommend that you build the logic for the above
directly into your exchange application.

### Withdrawals

- If user enters a Cosmos address (`inj...`):
- Use this directly, perform the transfer.
- If user enters an EVM address (`0x...`):
- Convert this to a Cosmos address (`inj...`).
- See [convert addresses](../developers/convert-addresses.md)
- Perform the transfer to the converted address

### Deposits

- If user deposits using a Cosmos address (`inj...`):
- Listen for `MsgSend` transactions, including `memo` field.
- Listen for `MsgMultiSend` transactions, including `memo` field.
- If user enters an EVM address (`0x...`):
- Listen for JSON-RPC events to monitor for deposits.