Skip to main content

AITP-05: EVM Wallet Schema Reference

  • Version: 1.0.0
  • Spec Status: Draft
AI-Generated Documentation

This documentation was generated with the assistance of AI and may need further review and refinement.

Schema URL

https://aitp.dev/capabilities/aitp-05-evm-wallet/v1.0.0/schema.json

Schema Overview

The AITP-05 EVM Wallet capability defines a JSON schema that supports several message types for interacting with Ethereum/EVM blockchain wallets:

  1. Request Address - Ask for Ethereum/EVM address information
  2. Address Response - Response with Ethereum/EVM addresses
  3. Request Transaction - Request a transaction to be signed and submitted
  4. Transaction Response - Response with transaction hash
  5. Request Message Signing - Request a message to be signed using EIP-191 or EIP-712
  6. Message Signing Response - Response with signed message
  7. Chain Notification - Notify about an EVM chain to be added
  8. Token Notification - Notify about an ERC-20 token to be made visible

Field Descriptions

Request Address Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
request_addressobjectYesContainer for the address request
request_address.request_idstringYesUnique identifier for this request
request_address.descriptionstringNoExplanation for why address access is needed
request_address.chain_idintegerNoEVM chain ID (defaults to 1 for Ethereum Mainnet)

Address Response Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
address_responseobjectYesContainer for the address response
address_response.request_idstringYesReference to the request being responded to
address_response.addressesarrayYesArray of Ethereum addresses (0x prefixed)

Request Transaction Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
request_transactionobjectYesContainer for the transaction request
request_transaction.request_idstringYesUnique identifier for this request
request_transaction.descriptionstringNoDescription of what the transaction will do
request_transaction.chain_idintegerNoEVM chain ID (defaults to 1 for Ethereum Mainnet)
request_transaction.transactionobjectYesTransaction details
request_transaction.transaction.tostringYesRecipient address
request_transaction.transaction.fromstringNoSender address
request_transaction.transaction.datastringNoTransaction data (hex encoded)
request_transaction.transaction.valuestringNoValue in wei (hex encoded)
request_transaction.transaction.gasstringNoGas limit (hex encoded)
request_transaction.transaction.gasPricestringNoGas price in wei (hex encoded)
request_transaction.transaction.maxFeePerGasstringNoMax fee per gas for EIP-1559 (hex encoded)
request_transaction.transaction.maxPriorityFeePerGasstringNoMax priority fee for EIP-1559 (hex encoded)
request_transaction.transaction.noncestringNoTransaction nonce (hex encoded)
request_transaction.transaction.accessListarrayNoEIP-2930 access list for more efficient gas usage

Transaction Response Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
transaction_responseobjectYesContainer for the transaction response
transaction_response.request_idstringYesReference to the request being responded to
transaction_response.transaction_hashstringYesHash of the submitted transaction

Request Message Signing Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
request_message_signingobjectYesContainer for the message signing request
request_message_signing.request_idstringYesUnique identifier for this request
request_message_signing.descriptionstringNoDescription of why the message needs to be signed
request_message_signing.addressstringNoOptional address to sign with (if omitted, wallet chooses)
request_message_signing.signing_typestringYesEither "personal_sign" for EIP-191 or "typed_data" for EIP-712
request_message_signing.messagestringConditionalMessage to sign (required for personal_sign)
request_message_signing.typed_dataobjectConditionalTyped data to sign (required for typed_data)
request_message_signing.typed_data.typesobjectYesType definitions for the structured data
request_message_signing.typed_data.primaryTypestringYesPrimary type being signed
request_message_signing.typed_data.domainobjectYesDomain separator data
request_message_signing.typed_data.messageobjectYesThe data to sign

Message Signing Response Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
message_signing_responseobjectYesContainer for the message signing response
message_signing_response.request_idstringYesReference to the request being responded to
message_signing_response.addressstringYesAddress that signed the message
message_signing_response.signaturestringYesCryptographic signature

Chain Notification Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
chain_notificationobjectYesContainer for the chain notification
chain_notification.notification_idstringYesUnique identifier for this notification
chain_notification.chain_idintegerYesEVM chain ID
chain_notification.namestringNoHuman-readable name for the chain
chain_notification.rpc_urlstringNoRPC endpoint URL for the chain
chain_notification.native_currencyobjectNoInformation about the chain's native currency
chain_notification.native_currency.namestringYesFull name of the currency (e.g., "Ether")
chain_notification.native_currency.symbolstringYesSymbol of the currency (e.g., "ETH")
chain_notification.native_currency.decimalsintegerYesNumber of decimal places (typically 18)

Token Notification Fields

FieldTypeRequiredDescription
$schemastringYesURI reference to the schema
token_notificationobjectYesContainer for the token notification
token_notification.notification_idstringYesUnique identifier for this notification
token_notification.chain_idintegerYesEVM chain ID
token_notification.token_typestringYesType of token (currently only "erc20" supported)
token_notification.token_contractstringYesContract address of the token
token_notification.namestringYesFull name of the token
token_notification.symbolstringYesSymbol of the token
token_notification.decimalsintegerYesNumber of decimal places for the token
token_notification.icon_urlstringNoURL to token icon image

Ethereum Standards

The capability references the following Ethereum standards:

  1. EIP-191: Signed data standard (personal_sign)
  2. EIP-712: Typed structured data hashing and signing
  3. EIP-1559: Fee market change for more predictable gas fees
  4. EIP-2930: Optional access lists for more efficient gas usage
  5. ERC-20: Fungible token standard

Common EVM Chain IDs

Chain IDNetwork
1Ethereum Mainnet
10Optimism
56BNB Smart Chain
137Polygon
42161Arbitrum One
43114Avalanche C-Chain
5Goerli Testnet
11155111Sepolia Testnet