ABI (Application Binary Interface), digunakan untuk berinteraksi dengan smart contract, baik antara contract atau pihak diluar blockchain Ethereum.
Hasil compile dari contract akan menghasilkan 2 file, yaitu ByteCode dan ABI.
ABI umumnya dalam format JSON, ABI berguna sebagai interface antara ByteCode dan JSON RPC, dapat dibayangkan sebagai low level API.
Berikut Diagram yang menggambarkan interaksi ABI dengan Exernal Application.
ABI akan berisi list function dari contract beserta argumentnya. Berikut contoh hasil compile yang menghasilkan ByteCode dan ABI.
Dapat dilihat, ByteCode tidak dapat dimengerti. Dengan menggunakan ABI, web3 dan ByteCode dapat berkomunikasi.
Sebagai Smart Contract developer, membaca bytecode atau ABI tidak diperlukan. Namun Anda perlu paham keberadaan kedua file dan bagaimana relasinya didalam sistem.