# Стандарты CAIP ## Обзор Vilna API реализует Chain Agnostic Improvement Proposals (CAIP) для единообразной кросс-чейн идентификации. Эти стандарты предоставляют универсальный способ идентификации блокчейнов, аккаунтов и активов в различных блокчейн-экосистемах. ## CAIP-2: Идентификация блокчейнов Предоставляет способ идентификации любого блокчейна в человекочитаемом, удобном для разработчиков формате. ### Формат ``` : ``` ### Компоненты - **namespace**: Идентифицирует пространство имен блокчейна (например, `eip155` для EVM-сетей, `bip122` для Bitcoin) - **reference**: Специфичный для сети идентификатор (chain ID для EVM, хеш genesis блока для Bitcoin) ### Примеры #### EVM сети - `eip155:1` - Ethereum Mainnet - `eip155:56` - BNB Smart Chain (BSC) - `eip155:137` - Polygon - `eip155:43114` - Avalanche C-Chain - `eip155:42161` - Arbitrum One - `eip155:10` - Optimism #### Не-EVM сети - `bip122:000000000019d6689c085ae165831e93` - Bitcoin Mainnet - `bip122:00000000001a91e3dace36e2be3bf030` - Dogecoin - `cosmos:cosmoshub-4` - Cosmos Hub - `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` - Solana Mainnet ## CAIP-10: Идентификация аккаунтов Идентифицирует блокчейн-аккаунты в разных сетях с единым форматом. ### Формат ``` : ``` ### Компоненты - **blockchain_gid**: Идентификатор блокчейна CAIP-2 - **account_address**: Формат адреса, специфичный для сети ### Примеры #### Ethereum аккаунты ``` eip155:1:0x742d35Cc6634C0532925a3b844Bc9e7595f7B123 ``` #### Bitcoin аккаунты ``` bip122:000000000019d6689c085ae165831e93:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa ``` #### Solana аккаунты ``` solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp:9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM ``` ## CAIP-19: Идентификация активов Предоставляет универсальный способ идентификации любого цифрового актива в любом блокчейне. ### Формат ``` /: ``` ### Компоненты - **blockchain_gid**: Идентификатор блокчейна CAIP-2 - **asset_namespace**: Тип актива (`slip44` для нативной валюты, `erc20`/`erc721` для токенов) - **asset_reference**: Специфичный для актива идентификатор ### Типы активов #### Нативные валюты Используют пространство имен `slip44` с типом монеты из реестра SLIP-44: ``` /slip44: ``` **Примеры:** - `eip155:1/slip44:60` - ETH в Ethereum - `eip155:56/slip44:60` - BNB в BSC - `eip155:137/slip44:60` - MATIC в Polygon - `bip122:000000000019d6689c085ae165831e93/slip44:0` - BTC в Bitcoin #### ERC-20 токены Используют пространство имен `erc20` с адресом контракта: ``` /erc20: ``` **Примеры:** - `eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7` - USDT в Ethereum - `eip155:1/erc20:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` - USDC в Ethereum - `eip155:56/erc20:0x55d398326f99059fF775485246999027B3197955` - USDT в BSC #### NFT (ERC-721) Используют пространство имен `erc721` с адресом контракта и ID токена: ``` /erc721:/ ``` **Пример:** - `eip155:1/erc721:0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D/101` - BAYC #101 ## Transaction GID (Расширение Vilna) Vilna расширяет стандарты CAIP для предоставления идентификации транзакций. ### Формат ``` : ``` ### Компоненты - **blockchain_gid**: Идентификатор блокчейна CAIP-2 - **transaction_hash**: Нативный хеш транзакции ### Примеры - `eip155:1:0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef` - Ethereum транзакция - `eip155:56:0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890` - BSC транзакция - `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp:3Ux7YJz3Fqx8hKzJH...` - Solana транзакция ## Преимущества 1. **Универсальная идентификация**: Один формат работает для всех блокчейнов 2. **Отсутствие неоднозначности**: Каждый идентификатор глобально уникален 3. **Человекочитаемость**: Легко понимать и отлаживать 4. **Независимость от инструментов**: Работает с любым блокчейн-инструментом или сервисом 5. **Готовность к будущему**: Расширяемый для новых блокчейнов и типов активов ## Ссылки - [Спецификация CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md) - [Спецификация CAIP-10](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-10.md) - [Спецификация CAIP-19](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md) - [Реестр SLIP-44](https://github.com/satoshilabs/slips/blob/master/slip-0044.md) *Стандарты CAIP обеспечивают единообразную идентификацию активов во всех поддерживаемых блокчейнах.*