EIP-681이 정의하는 것
EIP-681은 EIP 저장소에 게시된 이더리움 개선 제안(Ethereum Improvement Proposal)으로, 이더를 보내거나 컨트랙트 함수를 호출해 달라고 요청하는 URI 형식을 설명해요. URI는 ethereum:으로 시작하고 대상 주소, 선택 사항인 @와 체인 ID, 선택 사항인 함수 이름과 쿼리 매개변수가 뒤따라요. 이런 코드를 스캔한 지갑은 사용자가 검토할 거래를 만들어 줘요.
간단한 이더 요청은 ethereum:0x...@1?value=1e18처럼 보여요. 값은 이더의 가장 작은 단위인 wei로 쓰고 과학적 표기법도 허용되어서, 1e18은 이더 하나예요. 체인 ID는 지갑에 어떤 네트워크를 뜻하는지 알려 줘요. 예를 들어 1은 이더리움 메인넷이에요.
토큰 전송
EIP-681은 토큰 컨트랙트 호출도 설명할 수 있어요. 토큰 전송에서는 대상 주소가 토큰 컨트랙트이고, 함수는 transfer이며, 매개변수가 수취인과 금액을 줘요. ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6가 그 예예요. 금액은 토큰의 소수 자릿수에 따라 달라지는 토큰의 가장 작은 단위예요.
전체 형식에 대한 지갑 지원은 달라요. 어떤 지갑은 주소만 읽고, 어떤 지갑은 체인 ID나 함수 호출을 무시하므로, 결제자가 쓰는 지갑으로 코드를 테스트해 볼 만해요. 결제자는 확인하기 전에 항상 네트워크, 토큰, 수취인을 확인해야 해요.