컨트랙트 주소(CA)란 무엇이고 어떻게 확인할까?

이더리움, 트론, 솔라나의 컨트랙트 주소 해설. 작성: ChainGate.

컨트랙트 주소는 블록체인에 있는 스마트 컨트랙트의 주소입니다. 컨트랙트가 배포될 때 만들어지고, 개인 키가 없으며, 토큰 옆에 "CA"라고 적을 때 가리키는 문자열이 바로 이것입니다.

이더리움과 모든 EVM 체인에서는 지갑 주소와 똑같이 생겼습니다. 0x 뒤에 16진수 40자가 붙습니다. USDT나 USDC 같은 토큰은 컨트랙트이므로 토큰의 주소는 컨트랙트 주소입니다. 지갑 주소와 다른 점은 그 뒤에 있는 것입니다. 개인 키를 가진 사람 대신 코드와 스토리지가 있습니다.

이 용어는 세 곳에서 등장합니다. 지갑에 커스텀 토큰을 추가할 때, 블록 익스플로러가 어떤 주소를 컨트랙트로 표시할 때, 그리고 누군가 새 코인의 CA를 올릴 때입니다. 이 가이드는 이 주소가 무엇을 식별하는지, 어떻게 생성되는지, 지갑 주소와 어떻게 구분하는지, 토큰의 진짜 주소는 어디서 찾는지, 그리고 거기로 자금을 보내면 어떻게 되는지 설명합니다.

요약

  • 컨트랙트 주소는 코드를 가리키고, 지갑 주소는 키를 가진 사람을 가리킵니다. EVM 체인에서는 둘 다 같은 형식을 쓰므로 형식만으로는 어느 쪽인지 알 수 없습니다. 블록 익스플로러나 eth_getCode 호출로는 알 수 있습니다.
  • EVM 체인에서 주소는 0x + 40자의 16진수이며, 배포자의 주소와 nonce에서, 또는 CREATE2에서는 salt에서 도출됩니다. 트론은 T로 시작하는 34자를, 솔라나는 base58 민트 주소를 씁니다.
  • 토큰 주소는 발행사의 사이트나 문서에서 복사한 다음, 익스플로러에 검증된 소스 코드, 많은 보유자, 긴 내역이 표시되는지 확인하세요. 스캠 토큰은 진짜 이름과 심볼을 그대로 가져다 씁니다.
  • 대부분의 토큰 컨트랙트는 자기 주소로 보내진 토큰을 돌려줄 수 없습니다. 입금은 지갑 주소로 가고, 컨트랙트와는 그 함수를 아는 dApp이나 지갑을 통해 상호작용합니다.

1. 컨트랙트 주소란?

이더리움과 그와 같은 방식으로 만들어진 체인에서는 모든 계정에 주소가 있습니다. 계정은 두 종류입니다. 외부 소유 계정(EOA)은 그 개인 키를 가진 사람의 것입니다. 컨트랙트 계정은 프로그램과 그 프로그램이 보관하는 데이터를 담고 있으며, 그 주소가 컨트랙트 주소입니다. ethereum.org 문서는 이를 직접적으로 밝힙니다. 컨트랙트 계정에는 개인 키가 없으며, 스마트 컨트랙트 코드의 로직이 이를 제어합니다.

컨트랙트는 트랜잭션 하나로 한 번 배포되고, 그 순간 주소를 받으며, 체인이 존재하는 한 그 주소를 유지합니다. 누구나 그 주소로 트랜잭션을 보내 컨트랙트의 함수를 호출할 수 있습니다. 토큰 전송이나 탈중앙화 거래소에서의 스왑은 컨트랙트로 보내는 트랜잭션입니다.

가장 흔한 경우가 토큰입니다. USDT, USDC, WETH를 비롯한 모든 ERC-20 토큰은 잔액 표를 보관하는 컨트랙트입니다. 따라서 토큰의 주소는 컨트랙트 주소이고, 지갑이 아직 모르는 토큰을 표시하기 위해 필요한 단 하나의 정보이기도 합니다.

2. 암호화폐에서 "CA"란?

CA는 contract address, 즉 컨트랙트 주소의 약자입니다. X, 텔레그램, 디스코드에서 새 토큰에 관한 글은 대개 CA와 주소로 끝납니다. 토큰의 이름과 티커는 고유하지 않지만 주소는 고유하기 때문입니다. 트레이딩 사이트와 지갑도 같은 약어를 씁니다.

솔라나에서 CA는 토큰의 민트 주소, 즉 토큰의 공급량과 소수점 자릿수(decimals)를 정의하는 계정입니다. 이더리움, BNB 체인, 베이스를 비롯한 EVM 네트워크에서는 ERC-20 또는 BEP-20 컨트랙트의 주소입니다. 어느 경우든 누군가 말하는 바로 그 토큰에 닿기 위해 지갑이나 익스플로러에 붙여 넣는 것이 이 주소입니다. 가짜 CA가 흔한 사기 수법인 이유도 여기에 있습니다. 이름이 같은 비슷한 토큰은 다른 주소를 갖습니다.

3. 컨트랙트 주소는 어떻게 생겼을까?

형식은 체인을 따르며, 그 체인이 지갑 주소에 쓰는 것과 같은 형식입니다. 다음은 널리 쓰이는 두 스테이블코인의 공식 주소로, 발행사 페이지에서 가져온 것입니다:

네트워크토큰컨트랙트 주소형식
이더리움USDT(ERC-20)0xdAC17F958D2ee523a2206206994597C13D831ec70x + 40자의 16진수
이더리움USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB480x + 40자의 16진수
베이스USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029130x + 40자의 16진수
아비트럼 원USDC0xaf88d065e77c8cC2239327C5EDb3A432268e58310x + 40자의 16진수
폴리곤 PoSUSDC0x3c499c542cEF5E3811e1192ce70d8cC03d5c33590x + 40자의 16진수
트론USDT(TRC-20)TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6tT로 시작하는 base58check 34자
솔라나USDC(민트 주소)EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vbase58 32~44자

이더리움, 베이스, 아비트럼, 폴리곤 항목은 Circle의 USDC 컨트랙트 주소 목록에서, USDT 항목은 Tether의 지원 프로토콜 페이지에서 가져왔습니다. USDC는 체인마다 주소가 다릅니다. 이름이 같다고 같은 컨트랙트는 아닙니다. EVM 주소의 대문자와 소문자는 EIP-55에 정의된 체크섬을 이루며, 모두 소문자로 쓴 형태도 같은 주소이고 익스플로러와 지갑은 둘 다 받아들입니다.

비트코인에는 컨트랙트 주소가 없습니다. 3이나 bc1로 시작하는 비트코인 주소는 스크립트를 인코딩할 수 있지만, 그 주소에 호출할 프로그램이 있는 것은 아닙니다. 이 개념은 이더리움, 트론, 솔라나 같은 계정 기반 체인에 속합니다.

4. 컨트랙트 주소와 지갑 주소: 무엇이 다를까?

EVM 체인에서 둘은 똑같이 생겼으므로, 차이는 주소를 무엇이 제어하느냐에 있습니다.

지갑 주소(외부 소유 계정)컨트랙트 주소
제어 주체개인 키. 보통 시드 구문에서 도출컨트랙트의 코드. 개인 키는 없음
트랜잭션 시작 가능 여부예아니요. 트랜잭션이나 다른 컨트랙트가 호출할 때만 실행됨
코드 보유 여부아니요. EIP-7702로 코드에 위임한 경우는 예외예. 자체 스토리지도 함께
생성 방식무료. 공개 키에서 도출되며 트랜잭션 불필요가스를 지불하는 배포 트랜잭션으로
일반적인 용도자금 수신, 트랜잭션 서명토큰, 거래소, 렌딩 풀, NFT 컬렉션, 브리지
블록 익스플로러에서일반 주소로 표시컨트랙트로 표시되고 Contract 탭이 있음

유일한 회색 지대는 EIP-7702입니다. 2025년 5월 Pectra 업그레이드 이후 이더리움에서 활성화되어 있습니다. 지갑 주소가 자기 자신에 위임 코드를 붙일 수 있게 해 주어, 호출을 묶어 보내거나 다른 사람이 수수료를 대신 내게 할 수 있습니다. 키가 여전히 계정을 제어하고 계정은 여전히 트랜잭션을 보낼 수 있으므로, 코드가 붙은 지갑 주소인 채로 남습니다.

둘을 구분하려면 블록 익스플로러에서 주소를 여세요. 컨트랙트에는 Contract 탭, 생성자 주소, 그리고 소스가 공개되었다면 검증된 코드가 표시됩니다. 코드에서는 JSON-RPC 메서드 eth_getCode가 주소에 저장된 바이트코드를 반환하고, 지갑 주소라면 0x만 반환합니다. 이 탭들이 각각 어디에 있는지는 Etherscan 가이드에 나와 있습니다.

5. 컨트랙트 주소는 어떻게 생성될까?

주소는 고르는 것이 아니라 계산되는 것이며, 체인마다 규칙이 다릅니다:

이더리움과 EVM 체인(CREATE)
주소는 배포자의 주소와 그 nonce, 즉 그 주소가 보낸 트랜잭션 수를 Keccak-256으로 해시한 값의 마지막 20바이트입니다. 같은 계정에서 두 번 배포하면 nonce가 바뀌었으므로 서로 다른 두 주소가 나옵니다.
이더리움과 EVM 체인(CREATE2)
컨트랙트는 자기 주소, 자신이 고른 salt, 그리고 생성 코드의 해시로 계산한 주소에 다른 컨트랙트를 배포할 수 있습니다: keccak256(0xff ++ address ++ salt ++ keccak256(init_code))[12:]. 아무것도 배포되기 전에 주소를 알 수 있으며, 하나의 컨트랙트가 여러 체인에서 같은 주소에 나타날 수 있는 것은 이 때문입니다.
트론
트론 주소는 0x41로 시작하는 21바이트이며, T로 시작하는 base58check 34자로 표시됩니다. 컨트랙트 주소는 지갑 주소와 같은 형식을 쓰고, 배포 트랜잭션의 ID와 배포자의 주소에서 도출됩니다.
솔라나
프로그램의 주소는 그 실행 코드를 저장하는 계정의 공개 키입니다. 토큰은 Token Program이 소유하는 민트 계정의 주소로 식별됩니다. 토큰을 보유한 지갑은 민트마다 별도의 토큰 계정을 갖습니다.

규칙은 ethereum.org 계정 문서, CREATE2는 EIP-1014, 트론 계정 레퍼런스, 그리고 솔라나 토큰 문서에 있습니다.

6. 토큰 주소는 컨트랙트 주소와 같은 것일까?

EVM 체인에서는 같습니다. 토큰 주소는 토큰 컨트랙트의 컨트랙트 주소이고, 지갑, 익스플로러, 거래소는 같은 문자열에 두 이름을 씁니다. 지갑에 커스텀 토큰을 추가한다는 것은 그 주소를 붙여 넣는다는 뜻입니다. 지갑은 심볼과 소수점 자릿수를 컨트랙트 자체에서 읽어 오므로, 잘못된 주소를 넣으면 오류가 아니라 잘못된 토큰이 표시됩니다.

추가 식별자가 필요한 경우가 둘 있습니다. NFT는 컨트랙트 하나가 컬렉션 전체를 담고 있으므로 컬렉션의 컨트랙트 주소에 토큰 ID를 더해 식별합니다. 솔라나에서 토큰 주소는 민트 주소이고, 내가 보유한 잔액은 민트가 아니라 내 지갑에 연결된 토큰 계정에 있습니다.

7. 토큰의 컨트랙트 주소는 어디서 찾을까?

발행사가 관리하는 출처에서 가져온 다음 익스플로러에서 확인하세요.

발행사의 웹사이트나 문서
스테이블코인 발행사, 프로토콜, 그리고 대부분의 프로젝트는 체인별 주소를 공개합니다. Circle과 Tether는 USDC와 USDT에 대해 각각 페이지를 하나씩 두고 있고, 위 표의 항목은 거기서 가져온 것입니다.
CoinMarketCap과 CoinGecko
토큰 페이지의 Contracts 항목에 체인별 컨트랙트 주소가 복사 버튼과 익스플로러 링크와 함께 나열됩니다.
블록 익스플로러
Etherscan, BscScan, Polygonscan, Tronscan 또는 Solscan에서 토큰 이름을 검색하세요. 익스플로러는 자리 잡은 토큰에 표시를 붙이고 보유자 수를 보여 줍니다. 이름이 같고 보유자가 열 명인 복제본은 다른 토큰입니다.
내 지갑이나 거래소
지갑은 토큰 상세 화면에 주소를 표시합니다. 거래소는 입금과 출금 페이지에 그 주소가 속한 네트워크와 함께 표시합니다.

문자열 전체를 복사하고 네트워크도 함께 기억해 두세요. 베이스의 USDC 주소는 아비트럼에서 아무 의미가 없고, 잘못된 체인에서 조회하면 익스플로러에는 빈 주소가 표시됩니다.

8. 컨트랙트 주소가 진짜인지 어떻게 검증할까?

토큰의 이름과 심볼은 컨트랙트 안의 자유 텍스트이므로 누구나 두 번째 USDC를 배포할 수 있습니다. 다음 확인으로 진짜 컨트랙트와 복제본을 가려낼 수 있습니다:

발행사와 대조하기
주소는 발행사의 사이트나 문서에 있는 것과 글자 하나하나까지 똑같아야 합니다. 앞뒤 몇 글자만이 아니라 전체를 비교하세요. 비슷한 주소는 바로 그 부분이 같도록 생성됩니다.
검증된 소스 코드 찾기
Etherscan과 비슷한 익스플로러에서는 Contract 탭에 배포자가 소스를 공개했는지, 그리고 익스플로러가 다시 컴파일해 바이트코드와 일치함을 확인했는지가 표시됩니다. 널리 쓰이는 토큰인데 바이트코드가 검증되지 않았다면 경고 신호입니다.
보유자, 기간, 활동 확인하기
진짜 스테이블코인 컨트랙트에는 수백만 건의 전송과 수년의 내역이 있습니다. 지난주에 배포되었고 보유자가 몇 명뿐이며 검증된 소스도 없는 컨트랙트는 이름이 무엇이든 다른 토큰입니다.
토큰의 규칙 읽기
익스플로러와 토큰 스캐너는 소유자가 마음대로 민팅하거나, 전송을 중지하거나, 수수료를 바꾸거나, 매도를 막을 수 있는 컨트랙트에 표시를 붙입니다. 프록시 컨트랙트는 주소를 유지한 채 구현을 바꿀 수 있으므로 업그레이드를 누가 제어하는지 확인하세요.
체인 교차 확인하기
같은 프로젝트라도 체인이 다르면 주소가 다르므로, 익스플로러, 지갑, 출처가 모두 같은 네트워크를 가리키는지 확인하세요.

이 확인에 쓰는 Contract 탭과 Read Contract, Write Contract 뷰는 Etherscan 가이드에서 차례로 살펴봅니다.

9. 컨트랙트 주소로 암호화폐를 보내도 될까?

보낼 수는 있고, 결과는 컨트랙트에 따라 다릅니다. 렌딩 풀에 예치하기, 탈중앙화 거래소에서 사기, NFT 민팅은 모두 컨트랙트의 인터페이스를 아는 지갑이나 dApp을 통해, 보통 함수 호출을 붙인 트랜잭션을 컨트랙트로 보내는 방식으로 작동합니다.

피해야 할 실수는 토큰을 그 토큰 자체의 컨트랙트 주소로 보내는 것입니다. ERC-20 표준은 transfer, approve, 잔액 함수를 정의하지만 컨트랙트가 토큰을 돌려줄 수 있게 하는 것은 아무것도 정의하지 않으므로, 실수로 토큰 컨트랙트에 보낸 코인은 발행사가 복구 함수를 만들어 두었고 그것을 써 주기로 하지 않는 한 보통 사라집니다. 단순 전송을 받도록 설계된 적이 없는 대부분의 컨트랙트도 마찬가지입니다. 거부하는 것도 있고, 조용히 받아들이는 것도 있습니다.

거래소나 사람이 입금을 요청할 때 주는 것은 지갑 주소입니다. 프로토콜이 상호작용을 원할 때는 dApp이 트랜잭션을 대신 만들어 줍니다. 전송의 받는 사람 칸에 토큰의 컨트랙트 주소를 붙여 넣고 있다면, 멈추고 무엇을 하고 있는지 확인하세요.

10. 컨트랙트 주소는 모든 블록체인에서 같을까?

배포자가 일부러 그렇게 만들지 않는 한 아닙니다. 위 USDC 표는 같은 자산인데도 네 EVM 체인에서 네 개의 다른 주소를 보여 주는데, 각 배포가 nonce가 다른 계정에서 보낸 별개의 트랜잭션이었기 때문입니다. 브리지된 버전의 토큰은 .e 같은 접미사가 붙는 경우가 많고 자체 주소를 가지므로, 익스플로러에는 한 네트워크에 USDC라는 토큰이 둘 이상 표시될 수 있습니다.

체인 간에 같은 주소를 갖는 것은 CREATE2를 쓰거나, 같은 서명된 배포 트랜잭션을 모든 체인에서 새 계정으로 다시 보내는 방식으로 가능합니다. 지갑과 라이브러리가 쓰는 보조 컨트랙트인 Multicall3가 100개가 넘는 체인에서 0xcA11bde05977b3631167028862bE2a173976CA11에 있는 것은 그 때문이며, 배포 목록에서 확인할 수 있습니다. 대부분의 토큰은 이렇게 배포되지 않으므로, 쓰고 있는 체인에서 주소를 조회하세요.

지갑이 어느 네트워크에 연결되어 있는지 확실하지 않다면, 체인 ID 목록에서 각 체인 ID가 어느 네트워크와 익스플로러에 해당하는지 찾을 수 있습니다.

11. 코드로 주소 확인하기

사용자가 토큰이나 받는 사람 주소를 붙여 넣게 하는 애플리케이션은 트랜잭션을 만들기 전에 형식을 검증해야 합니다. ChainGate의 SDK는 비트코인, 이더리움, 라이트코인, 도지코인, 비트코인 캐시, 그리고 등록한 모든 EVM 네트워크의 주소를 검증하며, 대소문자 체크섬이 맞지 않는 EVM 주소는 거부합니다:

import { ChainGate, isValidEvmAddress } from 'chaingate';

const cg = new ChainGate({ apiKey: process.env.CHAINGATE_API_KEY });

// Format checks: true for a well-formed address, false otherwise
cg.networks.ethereum.isValidAddress('0xdAC17F958D2ee523a2206206994597C13D831ec7'); // true  (USDT contract)
cg.networks.ethereum.isValidAddress('0xD8DA6bf26964af9d7eed9e03e53415d37aa96045'); // false (EIP-55 checksum does not match)
isValidEvmAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48');                  // true  (USDC contract)

// Bitcoin: validate and classify the address type
cg.networks.bitcoin.isValidAddress('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');      // true
cg.networks.bitcoin.identifyAddressType('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4'); // 'segwit-p2wpkh'

형식 검증은 그 문자열이 올바른 형태의 주소라는 것만 말해 주고, 거기에 코드가 있는지는 말해 주지 않습니다. 그것을 알려면 RPC 엔드포인트에서 eth_getCode를 호출하세요. 컨트랙트는 바이트코드를 반환하고 지갑 주소는 0x를 반환합니다. 지원하는 모든 네트워크와 SDK가 인식하는 비트코인 주소 유형은 주소 검증 문서에 나열되어 있습니다.

12. 다음에 볼 것

컨트랙트 주소는 어느 프로그램과 대화하고 있는지 알려 주고, 트랜잭션 해시는 어떤 호출을 했는지 알려 주며, Etherscan 가이드는 익스플로러에서 둘을 읽는 방법을 보여 줍니다. 컨트랙트 호출에는 언제나 가스가 들고, 지금 각 네트워크에서 얼마가 드는지는 가스 트래커에서 볼 수 있습니다. 주소 검증, 잔액, 전송을 비트코인, 이더리움, 그 밖의 네트워크에 걸쳐 하나의 SDK로 처리하고 싶다면, ChainGate가 그 일을 해 줍니다.

자주 묻는 질문

암호화폐에서 컨트랙트 주소란?

스마트 컨트랙트의 블록체인 주소입니다. 스마트 컨트랙트는 트랜잭션으로 배포된 프로그램으로, 자체 스토리지가 있고 개인 키는 없습니다. 토큰, 탈중앙화 거래소, 렌딩 풀, NFT 컬렉션은 컨트랙트이므로 각각 컨트랙트 주소가 있습니다. 이더리움과 다른 EVM 체인에서는 0x 뒤에 16진수 40자가 붙는, 지갑 주소와 같은 형식입니다.

암호화폐에서 CA란?

CA는 contract address, 즉 컨트랙트 주소의 줄임말입니다. 이름과 티커는 고유하지 않지만 주소는 고유하기 때문에 토큰 이름 옆에 올립니다. 솔라나에서 CA는 토큰의 민트 주소이고, 이더리움, BNB 체인, 베이스에서는 토큰 컨트랙트의 주소입니다.

컨트랙트 주소는 지갑 주소와 같은 것일까?

아니요. 지갑 주소는 개인 키가 제어하고 트랜잭션을 시작할 수 있습니다. 컨트랙트 주소는 거기에 배포된 코드가 제어하고, 개인 키가 없으며, 트랜잭션이 호출할 때만 동작합니다. EVM 체인에서는 둘 다 같은 0x 형식이므로, 컨트랙트에 Contract 탭이 붙는 블록 익스플로러에서 구분하거나, 지갑 주소에 대해 0x를 반환하는 eth_getCode RPC 호출로 구분합니다.

컨트랙트 주소는 어떻게 생겼을까?

이더리움, BNB 체인, 폴리곤, 아비트럼, 베이스 및 다른 EVM 체인: 0x에 16진수 40자를 더한 형태로, 예를 들어 USDT는 0xdAC17F958D2ee523a2206206994597C13D831ec7입니다. 트론: T로 시작하는 base58check 34자로, 예를 들어 USDT는 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t입니다. 솔라나: 32~44자의 base58 민트 주소로, 예를 들어 USDC는 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v입니다.

토큰의 컨트랙트 주소는 어떻게 찾을까?

발행사의 웹사이트나 문서에서, 또는 CoinMarketCap이나 CoinGecko의 토큰 페이지에 있는 Contracts 항목에서 가져온 다음, 같은 체인의 블록 익스플로러에서 확인하세요. 검증된 소스 코드, 많은 보유자 수, 긴 전송 내역이 진짜 컨트랙트의 표시입니다. 지갑은 토큰 상세 화면에, 거래소는 입금 페이지에 주소를 표시합니다.

주소가 컨트랙트인지 어떻게 알 수 있을까?

블록 익스플로러에서 열어 보세요. 컨트랙트 페이지에는 Contract 탭, 생성자 주소, 그리고 공개되었다면 검증된 소스 코드가 표시됩니다. 코드에서는 eth_getCode RPC 메서드가 컨트랙트에는 바이트코드를, 지갑 주소에는 0x를 반환합니다.

컨트랙트 주소로 토큰을 보내도 될까?

렌딩 풀이나 거래소처럼 토큰을 받도록 설계된 컨트랙트일 때만, 그리고 보통은 알맞은 함수 호출을 붙여 주는 dApp을 통해서만 보냅니다. 토큰을 그 토큰 자체의 컨트랙트 주소로 보내면 ERC-20 표준에 돌려보내는 함수가 없기 때문에 보통 잃게 됩니다. 거래소 입금과 사람에게 하는 결제는 언제나 지갑 주소로 갑니다.

토큰 주소란?

토큰의 스마트 컨트랙트가 가진 컨트랙트 주소입니다. 지갑, 익스플로러, 거래소는 같은 문자열에 토큰 주소와 컨트랙트 주소라는 이름을 모두 씁니다. 솔라나에서 토큰 주소는 민트 주소이고, NFT는 컬렉션의 컨트랙트 주소에 토큰 ID를 더해 식별합니다.

컨트랙트 주소는 모든 체인에서 같을까?

기본적으로는 아닙니다. USDC는 각 배포가 별개의 트랜잭션이기 때문에 이더리움, 베이스, 아비트럼, 폴리곤에서 주소가 다릅니다. 프로젝트는 CREATE2를 쓰거나 Multicall3처럼 같은 서명된 배포를 다시 보내 여러 체인에서 같은 주소를 얻을 수 있지만, 주소는 언제나 쓰고 있는 체인에서 조회해야 합니다.

스마트 컨트랙트에 개인 키가 있을까?

아니요. 컨트랙트 계정은 코드가 제어합니다. 코드에 소유자 함수가 있다면 소유자는 별도의 주소, 보통 지갑이나 멀티시그이며 자기 키를 따로 갖고 있습니다. 소유권이 포기된 컨트랙트는 아무도 바꿀 수 없습니다.

ChainGate로 만들기

아이디어를 코드로 연결하세요 — ChainGate는 Ethereum과 20여 개 블록체인을 위한 지갑, 트랜잭션, 관리형 RPC를 하나의 라이브러리로 제공합니다.