콘솔에서 시작하기
KAS를 사용하려면 KAS 회원에 가입해야 하며, 이메일 인증이 필요합니다. 이메일 인증이 완료되면 KAS를 사용할 수 있습니다.
KAS 회원 가입하기
1. 회원 가입 페이지로 접속해 로그인에 사용할 정보와 이름, 휴대전화 번호, 회사 정보를 입력합니다.
2. 정보 입력 후 [회원 가입]을 클릭하면 입력한 이메일로 인증 메일이 전송됩니다. KAS 인증 메일을 열어 인증 번호를 확인합니다.
3. 메일에서 확인한 인증 번호를 KAS Console에서 입력하고 인증을 완료합니다.
4. 인증이 정상적으로 완료되면 로그인 페이지로 이동하게 됩니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
KAS Console에 로그인하기
가입 시 입력한 이메일과 비밀번호로 로그인합니다.
로그인하면 기본 대시보드 페이지로 이동합니다. 대시보드 페이지에서는 KAS 계정별로 API 사용량을 확인할 수 있습니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
Klaytn 계정 생성하기
여러분이 블록체인 애플리케이션을 개발한다면 아마도 그 애플리케이션은 블록체인에 트랜잭션을 보낼 것입니다. 블록체인에 트랜잭션을 보내는 주체를 계정(Account)이라고 합니다. Klaytn에서 여러분의 계정은 계정 주소(EOA)라는 형태로 표현됩니다. Wallet API로 Klaytn에 트랜잭션을 보내거나, Token History API로 여러분이 KLAY 또는 토큰을 전송한 기록을 조회하려면 Klaytn 계정이 반드시 필요합니다.
info
KAS 계정은 KAS 회원 가입으로 생성되며, Klaytn 계정은 KAS Wallet API를 호출해 생성해야 합니다.
트랜잭션에 관한 자세한 내용은 다음을 확인하십시오.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
계정, 수수료 대납 계정, 오퍼레이터
Klaytn 계정은 크게 여러분이 KLAY를 보관, 전송, 수신할 수 있는 Klaytn 계정(=외부 사용자 계정, EOA)과 스마트 컨트랙트를 배포하면 생성되는 스마트 컨트랙트 계정이 있습니다.
KAS에서는 여러분의 편의를 위해 Klaytn 계정 역할에 따라 아래와 같은 계정 유형을 제공합니다.
- 계정(Account) : Klaytn에 트랜잭션을 전송하는 주체
- 수수료 대납 계정(FeePayerAccount) : Klaytn에 트랜잭션을 전송할 때, 트랜잭션을 보내는 계정(=일반 계정) 대신 트랜잭션 전송 수수료를 납부하는 주체
- 오퍼레이터(Operator) : 서비스 체인 데이터를 메인 체인에 앵커링하는 주체
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
계정 저장소
여러분의 KAS 계정은 여러 Klaytn 계정을 소유할 수 있습니다. KAS에서는 하나의 KAS 계정으로 여러 Klaytn 계정을 쉽고 편하게 관리하도록 Klaytn 계정들을 보관하는 계정 저장소를 제공합니다. 계정 저장소는 Klaytn 계정 유형마다 별도로 존재하며, 하나의 KAS 계정이 여러 저장소를 만들어 운영할 수 있습니다.
KAS에서는 여러분의 편의를 위해 계정 역할에 따라 아래와 같은 계정 저장소 유형을 제공합니다.
- 계정 저장소(Account Pool) : 일반적인 Klaytn 계정들을 관리하는 저장소
- 수수료 대납 계정 저장소(Fee-payer Pool) : 수수료 대납 계정들을 관리하는 저장소
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
계정 만들기
계정 저장소 생성
KAS는 여러 Klaytn 계정을 관리하는 계정 저장소를 제공합니다. KAS를 사용하려면 여러분은 KAS Console에서 계정 저장소를 만들고, 계정 생성 API로 Console에서 만든 계정 저장소에 새로운 Klaytn 계정을 만들어야 합니다.
기본 계정 저장소
기본 계정 저장소란 KAS API를 호출 시 사용할 계정 저장소를 별도로 지정하지 않을 때 기본으로 사용하는 계정 저장소입니다. API를 호출 시 헤더의 x-krn
에 사용할 계정 저장소의 KRN을 입력하지 않으면 기본 계정 저장소에 있는 Klaytn 계정이 사용됩니다. 기본 계정 저장소는 KAS Console > Service > Wallet > Account Pools 화면에서 확인할 수 있으며 DEFAULT
태그가 붙습니다.
여러분이 가장 먼저 생성한 계정 저장소가 자동으로 기본 계정 저장소로 지정됩니다. 예를 들어, 여러분이 KAS Console에서 계정 저장소 A
를 만들었다면, 이후 API 호출 시 사용할 계정 자장소를 별도로 지정하지 않을 경우 A
계정 저장소에 있는 Klaytn 계정이 API 호출에 사용됩니다. 만약 계정 저장소가 없는 상태에서 Klaytn 계정을 생성하는 API를 호출하면 KAS는 자동으로 기본 계정 저장소를 생성한 후 이 기본 저장소에 여러분이 생성한 Klaytn 계정을 저장합니다.
info
다른 계정 저장소에 있는 Klaytn 계정으로 API를 호출하려면 x-krn
에 사용할 계정 저장소 KRN을 입력하십시오.
KAS Console > Service > Wallet > Account Pools
KAS Console > Service > Wallet > Account Pools 메뉴에서 [생성]을 클릭합니다. 버튼을 클릭하면 아래와 같이 Klaytn 계정 저장소를 생성하는 화면이 나타납니다.
계정 저장소 생성
Klaytn 계정 저장소를 만듭니다. 계정 저장소의 이름은 현재 KAS 계정의 다른 계정 저장소 이름과 중복되지 않아야 합니다.
계정 저장소 확인
계정 저장소를 만들었다면, 계정 저장소 목록에서 생성한 저장소를 확인할 수 있습니다.
info
계정 저장소를 만들고 얻는 KRN을 API 호출 시 x-krn
헤더에 입력하면, 이 계정 저장소에 있는 Klaytn 계정으로 API를 호출합니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
계정 생성
Console에서 생성
위에서 만든 계정 저장소 가운데 하나를 골라 클릭합니다. 선택한 계정 저장소 화면에서 [Account 생성]을 클릭하면 계정을 생성할 수 있습니다.
API 호출
Klaytn 계정 생성 API를 아래와 같이 호출합니다. API 호출 시 REST API 또는 SDKs (caver-js, caver-java extensions)를 사용할 수 있습니다.
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Klaytn 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Klaytn 계정의 자산(KLAY 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Klaytn 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
danger
KAS/Klaytn 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
//KAS에서 제공하는 기본 계정 저장소를 사용하는 예시이며 x-krn 헤더 파라미터를 생략
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/account" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}"
//여러분이 위에서 만든 계정 저장소를 사용하는 예시이며 x-krn 헤더 파라미터 포함
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/account" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}"
--header "x-krn: krn:1001:wallet:6698d79e-78ee-439a-815d-f293ec6ae736:account-pool:ap1"
const result = await caver.kas.wallet.createAccount();
Account account = caver.kas.wallet.createAccount();
System.out.println(account);
API 응답
Klaytn 계정 생성 API의 응답은 아래와 같습니다.
//KAS 기본 저장소에 계정을 만들었을 때 응답 예시
{
"address": "0xa809284C83b901eD106Aba4Ccda14628Af128e14",
"chainId": 1001,
"createdAt": 1599187293,
"keyId": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default:0x4cbbcb974e32a7960e1b356edf60087613101919ed83199f12e872cba068a50f",
"krn": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default",
"publicKey": "0x04cdccfb99b2905561e3dd886687b429a004718f11b04914f17ce68fd3a0db46c598a45da85caa61fe84cb78a0f2eaa9983ec7b8805a93ef9428eb1350a8558237",
"updatedAt": 1599187293
}
//여러분이 만든 계정 저장소에 계정을 만들었을 때 응답 예시
{
"address": "0xa809284C83b901eD106Aba4Ccda14628Af128e14",
"chainId": 1001,
"createdAt": 1599187293,
"keyId": "krn:1001:wallet:6698d79e-78ee-439a-815d-f293ec6ae736:account-pool:ap1:0x4cbbcb974e32a7960e1b356edf60087613101919ed83199f12e872cba068a50f",
"krn": "krn:1001:wallet:6698d79e-78ee-439a-815d-f293ec6ae736:account-pool:ap1",
"publicKey": "0x04cdccfb99b2905561e3dd886687b429a004718f11b04914f17ce68fd3a0db46c598a45da85caa61fe84cb78a0f2eaa9983ec7b8805a93ef9428eb1350a8558237",
"updatedAt": 1599187293
}
Account {
address: '0xC42cF87D75d3233de424cD68B0B6fE381aD83E98',
chainId: 1001,
createdAt: 1601876981,
keyId: 'krn:1001:wallet:8e76d003-d6dd-4278-8d05-5172d8f010ca:account-pool:default:0x199647191a710a38496ed645eeec3b82d980dd635eebe236464ebc3c28f2d841',
krn: 'krn:1001:wallet:8e76d003-d6dd-4278-8d05-5172d8f010ca:account-pool:default',
publicKey: '0x04f86e01d9ec2f80cf47594c342aa1151a5b9cf95c3d0b8ba8613afa531ebdf7fe4b7c49c2b0d25be6491fe53b92bbb40f23f1f830ca50708f8fe2775f24e9c4ce',
updatedAt: 1601876981
}
class Account {
address: 0xE8785620772e6d5cddB4C71808C0EcF2FDEB4079
chainId: 1001
createdAt: 1602120333
keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0xa7b69c64336b0bc63481569cd81edaee81d61b35b4511d954dc534651eca75a3
krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
publicKey: 0x04c5d9f0da5f39dcfb10fc386ce33853f6fbe0b75854433fd48af63af11ed889026d5b4f254637d21d8c03f9072065144529c0a54a36ed757b1893bad670d7dd0c
updatedAt: 1602120333
multiSigKeys: null
threshold: null
}
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
생성한 계정에 KLAY 충전하기
warning
KLAY 충전은 테스트넷(Baobab)에서만 제공합니다. 선택한 하나의 계정에 충전하면 24시간이 지난 후에 다시 충전할 수 있습니다.
150KLAY 충전하기
충전하고자 하는 계정 주소 옆 배터리 이미지 버튼을 클릭하면 해당 계정에 150KLAY를 충전할 수 있습니다.
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
수수료 대납 계정 만들기
수수료 대납 계정 저장소 생성
KAS에서 Klaytn 트랜잭션 수수료를 대신 납부하는 계정을 만들려면, 먼저 수수료 대납 계정들을 관리하는 수수료 대납 계정 저장소를 만들어야 합니다. 여러 개의 수수료 대납 계정 저장소를 만들 수 있으며 KAS Console에서 대납 계정을 생성하고 싶은 저장소를 선택한 후 이 저장소에 계정을 생성해야 합니다.
info
KAS에서 제공하는 수수료 납부 방식에 관한 자세한 내용은 다음을 확인하십시오.
KAS Console > Service > Wallet > Fee-payer Pools
KAS Console > Service > Wallet > Fee Payers 메뉴에서 [생성] 버튼을 클릭합니다. 버튼을 클릭하면 아래와 같이 수수료 대납 계정 저장소를 생성하는 화면이 나타납니다.
수수료 대납 계정 저장소 생성
수수료 대납 계정 저장소를 만듭니다. 수수료 대납 계정 저장소의 이름은 현재 KAS 계정의 다른 수수료 대납 계정 저장소 이름과 중복되지 않아야 합니다.
warning
수수료 대납 계정은 반드시 이 문서의 안내를 따라 KAS Console에서만 생성하십시오.
KAS의 다른 API로 수수료 대납 계정을 생성할 경우, 해당 계정은 KAS 계정 저장소에 등록되지 않습니다.
수수료 대납 계정 저장소 확인
계정 저장소를 만들었다면, 계정 저장소 목록에서 생성한 저장소를 확인할 수 있습니다.
info
KRN은 수수료 대납 방식으로 트랜잭션을 전송하는 API를 호출 시 사용합니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
수수료 대납 계정 생성
수수료 대납 계정 저장소들 중에서 수수료 대납 계정을 만들고 싶은 저장소를 선택합니다. 원하는 저장소의 KRN을 클릭하면 해당 수수료 대납 계정 저장소에 대한 상세 화면이 나타납니다.
[Account 생성]을 클릭하고 수수료 대납 계정을 생성합니다.
수수료 대납 계정 저장소 상세 화면에서 생성된 수수료 대납 계정 정보를 확인할 수 있습니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
오퍼레이터 만들기
KAS Console > Service > Anchor > Operators
KAS Console > Service > Anchor > Operators 메뉴에서 [생성]을 클릭합니다. 버튼을 클릭하면 아래와 같이 오퍼레이터를 생성하는 화면이 나타납니다.
데이터 앵커링 트랜잭션 수수료 납부 설정
KAS Console에서 오퍼레이터를 생성하려면 아래와 같이 오퍼레이터가 보낼 데이터 앵커링 트랜잭션 수수료를 어떤 계정이 납부할 것인지 설정해야 합니다.
파라미터 | 설명 |
---|---|
feepayer | 사용자의 수수료 대납 계정 주소. 자신만의 대납 계정으로 데이터 앵커링 트랜잭션 수수료를 납부할 경우 사용 |
useOperator | 오퍼레이터가 데이터 앵커링 트랜잭션 수수료를 직접 납부할 것인지 여부 |
useGlobalFeepayer | KAS에서 데이터 앵커링 트랜잭션 수수료를 대납해줄 것인지 여부(트랜잭션 수수료는 사용자에게 추후 청구됨) |
-
useGlobalFeepayer
를 사용하면 KLAY 잔고가 부족해도 데이터 앵커링 트랜잭션을 전송 - 3개 파라미터가 모두 다 설정되어 있지 않은 경우엔 에러를 반환
- 1개 이상의 파라미터를 입력했다면 아래 우선 순위를 따라서 데이터 앵커링 트랜잭션 수수료를 대납
warning
앵커링 트랜잭션 실행을 보장하려면 useGlobalFeepayer
를 사용하십시오.
info
feepayer
를 사용하려면 먼저 수수료 대납 계정 저장소와 수수료 대납 계정을 만들어야 합니다.feepayer
를 사용하려면 수수료 대납 계정 주소와 수수료 대납 계정이 소속된 수수료 대납 계정 저장소 KRN 값이 필요합니다.
수수료 대납 방식으로 앵커링 트랜잭션을 전송할 때 여러 파라미터를 모두 사용하기로 했다면, 수수료 납부 우선순위는 아래와 같습니다.
우선순위 | 파라미터 | 트랜잭션 수수료 대납주체 |
---|---|---|
1 | feepayer | 사용자의 별도 대납 계정 |
2 | useOperator | 오퍼레이터 |
3 | useGlobalFeepayer | KAS(추후 트랜잭션 수수료를 사용자에게 청구) |
만약 여러분이 3개 파라미터를 모두 사용하기로 설정했다면, 우선순위가 높은 계정부터 앵커링 트랜잭션 수수료를 납부합니다. feepayer
계정 잔고가 부족하여 트랜잭션 수수료를 납부하기 어렵다면, 그 다음 순위가 오퍼레이터이므로 앵커링 트랜잭션을 전송하는 오퍼레이터가 수수료를 직접 납부합니다.
파라미터 설정별 동작을 정리하면 다음과 같습니다.
useGlobalFeepayer | feepayer | useOperator | 우선순위 |
---|---|---|---|
false | X | false | 에러 발생 |
true | X | false | KAS |
false | X | true | 오퍼레이터 |
true | X | true | 오퍼레이터 > KAS |
false | O | false | 사용자 대납 계정 |
false | O | true | 사용자 대납 계정 > 오퍼레이터 |
true | O | true | 사용자 대납 계정 > 오퍼레이터 > KAS |
true | O | false | 사용자 대납 계정 > KAS |
오퍼레이터 생성 및 확인
파라미터 설정을 마쳤으면 오퍼레이터를 만듭니다.
오퍼레이터 목록에서 생성한 오퍼레이터를 확인할 수 있습니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
API 인증 키 생성하기
API 인증 키란 KAS API를 호출하는 주체가 KAS 회원이 맞는지 증명하는 수단입니다. 인증 키는 AccessKey ID
와 Secret AccessKey
로 구성되며 API 호출 시 호출 헤더에 다음과 같이 인증 키를 입력합니다.
...
-u {access-key-id}:{secret-access-key}
...
KAS Console에서 Security > Credential 메뉴를 클릭합니다.
[AccessKey 생성]을 클릭하면 AccessKey ID와 Secret AccessKey가 생성됩니다. 다운로드를 클릭하여 kas-credential-{access-key-id}.json이라는 파일명으로 생성한 인증 키를 다운받습니다.
API 인증 키에서 인증 비밀번호인 Secret AccessKey
와 Authorization
은 최초 생성 시 한 번만 확인할 수 있습니다. 따라서, 최초 생성 시 반드시 Secret AccessKey와 Authorization을 안전한 곳에 복사 또는 다운로드해 관리해야 합니다. 인증 키 생성시 확인할 수 있는 Authorization
(예: Basic S0FTS1A2WkRaSjh...
)은 Basic 인증 방식을 이용하여 AccessKey ID
와 Secret AccessKey
를 인코딩한 값이며 API 호출 시 호출 헤더에 사용합니다.
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Klaytn 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Klaytn 계정의 자산(KLAY 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Klaytn 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
danger
KAS/Klaytn 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
info
인증 키는 KAS Console > Security > Credential 메뉴에서 생성할 수 있습니다.
인증 키는 최대 2개까지 생성 가능합니다.
인증 키를 교체하려면 기존 키를 삭제하고 새 인증 키를 만들어야 합니다.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.