API 호출하기
KAS Wallet API로 Kaia 계정 생성 후 계정 정보 조회를 예시로 KAS API 호출 방법을 안내합니다.
Kaia 계정 생성
Kaia 계정을 생성하려면 먼저 KAS 회원에 가입, 로그인하고 API 인증 키를 받아야 합니다.
info
KAS 회원 가입, 로그인, API 인증 키를 받는 방법에 관한 자세한 내용은 다음을 확인하십시오.
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Kaia 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Kaia 계정의 자산(KAIA 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Kaia 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
danger
KAS/Kaia 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
API 호출
API 인증 키를 받으면 이를 API 호출 헤더에 입력하고 Kaia 계정 생성 API를 호출할 수 있습니다. 만약, 여러분이 KAS Console에서 계정 저장소를 생성했다면 API 호출 헤더의 x-krn
파라미터에 여러분이 만든 계정 저장소 KRN을 입력해 여러분이 만든 계정 저장소에 Kaia 계정을 생성할 수 있습니다. 계정 저장소와 x-krn
파라미터에 관한 자세한 내용은 다음을 확인하십시오.
Kaia 계정 생성 API를 아래와 같이 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
info
여러분이 자신만의 계정 저장소를 만들지 않아도 사용자가 API를 호출할 때 KAS는 기본으로 계정 저장소를 제공합니다.
KAS에서 기본으로 제공하는 계정 저장소를 사용하지 않고, 자신만의 계정 저장소를 만들어서 사용하려면 KAS Console에서 여러분의 계정 저장소를 먼저 만들어야 합니다.
-
API 호출에 사용되는
x-chain-id
값은8217
(Mainnet) 또는1001
(Kairos)입니다. - API 호출에 필요한 필수 파라미터는 각 예시에 설명됩니다.
API 호출 시 사용자가 입력해야 하는 값은 중괄호 1개({}
)로 표시합니다. 사용자가 입력해야 하는 값은 아래 테이블과 같습니다.
항목 | 값 | 비고 |
---|---|---|
chain-id | 8217 또는 1001 | Kaia 메인넷 또는 Kairos |
access-key-id | 인증 아이디 | KAS Console > [Security] > [Credential]에서 발급받은 accessKeyId |
secret-access-key | 인증 비밀번호 | KAS Console > [Security] > [Credential]에서 발급받은 secretAccessKey |
krn | (optional) 계정 저장소의 ID | 기본 계정 저장소 사용 시 불필요 |
//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 헤더 파라미터 포함
//참고: 여러분이 KAS Console에서 처음으로 만든 계정 저장소는 자동으로 기본 계정 저장소로 지정됩니다. 즉, 여러분이 KAS API를 호출할 때 x-krn 파라미터로 계정 저장소를 따로 지정하지 않으면 여러분이 처음으로 만든 계정 저장소가 기본 저장소이므로 이 계정 저장소에 있는 Kaia 계정으로 KAS API를 호출합니다.
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 응답
Kaia 계정 생성 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에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
Kaia 계정 조회하기
Kaia 계정 조회 API는 생성된 Kaia 계정의 정보를 조회할 때 사용됩니다.
API 호출
계정(EOA) 주소를 입력하고 Kaia 계정 조회 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
-
API 호출에 사용되는
x-chain-id
값은8217
(Mainnet) 또는1001
(Kairos)입니다. - API 호출에 필요한 필수 파라미터는 각 예시에 설명됩니다.
API 호출 시 사용자가 입력해야 하는 값은 중괄호 1개({}
)로 표시합니다. 사용자가 입력해야 하는 값은 아래 테이블과 같습니다.
항목 | 값 | 비고 |
---|---|---|
chain-id | 8217 또는 1001 | Kaia 메인넷 또는 Kairos |
access-key-id | 인증 아이디 | KAS Console > [Security] > [Credential]에서 발급받은 accessKeyId |
secret-access-key | 인증 비밀번호 | KAS Console > [Security] > [Credential]에서 발급받은 secretAccessKey |
krn | (optional) 계정 저장소의 ID | 기본 계정 저장소 사용 시 불필요 |
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Kaia 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Kaia 계정의 자산(KAIA 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Kaia 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
danger
KAS/Kaia 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
curl --location --request GET "https://wallet-api.klaytnapi.com/v2/account/0xa809284C83b901eD106Aba4Ccda14628Af128e14" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}"
const result = await caver.kas.wallet.getAccount(
"0xC42cF87D75d3233de424cD68B0B6fE381aD83E98"
);
Account account = caver.kas.wallet.getAccount("0xbdd1A483f9058B364f892D3C9Af2c63382785EEa");
System.out.println(account);
API 응답
Kaia 계정 조회 API의 응답은 아래와 같습니다.
{
"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
}
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: 0xbdd1A483f9058B364f892D3C9Af2c63382785EEa
chainId: 1001
createdAt: 1602122561
keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0x119c90315df9bb00901db6b768c32a450decaa1da7387f27686cdcfc350bddc2
krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
publicKey: 0x043cd09ea024668a4a09f729a3772da10ac5139a7ac1fb624090283d7de81a885530bb42336b3142051e7b82f8305a77f876f13568c2c9a0ca4fd901b9be5f7913
updatedAt: 1602122561
multiSigKeys: null
threshold: null
}
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
Kaia 계정 목록 조회하기
Kaia 계정 목록 조회 API는 생성된 Kaia 계정 목록을 조회할 때 사용됩니다.
API 호출
Kaia 계정 목록 조회 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
-
API 호출에 사용되는
x-chain-id
값은8217
(Mainet) 또는1001
(Kairos)입니다. - API 호출에 필요한 필수 파라미터는 각 예시에 설명됩니다.
API 호출 시 사용자가 입력해야 하는 값은 중괄호 1개({}
)로 표시합니다. 사용자가 입력해야 하는 값은 아래 테이블과 같습니다.
항목 | 값 | 비고 |
---|---|---|
chain-id | 8217 또는 1001 | Kaia 메인넷 또는 Kairos |
access-key-id | 인증 아이디 | KAS Console > [Security] > [Credential]에서 발급받은 accessKeyId |
secret-access-key | 인증 비밀번호 | KAS Console > [Security] > [Credential]에서 발급받은 secretAccessKey |
krn | (optional) 계정 저장소의 ID | 기본 계정 저장소 사용 시 불필요 |
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Kaia 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Kaia 계정의 자산(KAIA 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Kaia 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
danger
KAS/Kaia 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
- 쿼리 파라미터 여러분은 커서 방식 페이지네이션 을 사용해 API 응답값을 받아올 수 있습니다. 검색 범위를 초단위로 지정할 수 있습니다.
파라미터 이름 | 설명 | 예시 | 필수 |
---|---|---|---|
size | 응답 아이템 개수 (min=1, max=1000, default=100) | size=100 |
False |
cursor | 페이지네이션으로 다음 요청을 보낼 때 필요한 커서 | cursor=J9Ag...VM6z |
False |
to-timestamp | 검색 범위: 마지막 시간의 타임스탬프 (초단위) | to-timestamp=15921809920 |
False |
from-timestamp | 검색 범위: 시작 시간의 타임스탬프 (초단위) | from-timestamp=1592360291 |
False |
curl --location --request GET "https://wallet-api.klaytnapi.com/v2/account?&size=100&cursor=&from-timestamp=1592360291&to-timestamp=15991809920" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}"
const query = {
fromTimestamp: 1501576981,
toTimestamp: 1601876982,
size: 3,
cursor: "",
};
const result = await caver.kas.wallet.getAccountList(query);
WalletQueryOptions options = new WalletQueryOptions();
options.setSize((long)5);
options.setFromTimestamp((long)1599187200);
options.setToTimestamp((long)1599187200);
Accounts accounts = caver.kas.wallet.getAccountList(options);
System.out.println(accounts);
API 응답
Kaia 계정 목록 조회 API의 응답은 아래와 같습니다.
{
"cursor": "",
"items": [
{
"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": "0x78B123CCCCd50f41E3192a60e6ED92B15E21b1B5",
"chainId": 1001,
"createdAt": 1599187194,
"keyId": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default:0x6c4419647e7724853f9e50b0c54b5985d0870470ac37b3ef865e62c3ccfa4ea4",
"krn": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default",
"publicKey": "0x0463cc38f08dd15dfd416966e9d0da93942e26d2a9a9bcac08d614f487f94a7e46e4418d1acda9e21706f19c917486de40c974eb20c12a2eca2eea91895499d379",
"updatedAt": 1599187194
},
...
,
{
"address": "0x7ec5169EA28B2e3fFEF143a3513D7eC1CeFF2cB4",
"chainId": 1001,
"createdAt": 1599187161,
"keyId": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default:0xd3ee56e2616c8d412918e7f0e9222c805aacf5bad6d84b70b83c2229d61f21c9",
"krn": "krn:1001:wallet:68ec0e4b-0f61-4e6f-ae35-be865ab23187:account-pool:default",
"publicKey": "0x043ccf257d2ad3f8c3b2128969302efc6bf59d8cd8e578bcfdac8a4ac9cea6d4747350c98edaec5d23fafa9b3288a3b45816d2e9b3bb28443cc2486ad6bca652f1",
"updatedAt": 1599187161
}
]
}
Accounts {
cursor: 'eyJBZGRyZXNzIjoia3JuOjEwMDE6d2FsbGV0OjhlNzZkMDAzLWQ2ZGQtNDI3OC04ZDA1LTUxNzJkOGYwMTBjYTphY2NvdW50LXBvb2w6ZGVmYXVsdDoweERhNTVlMDQyMDI5MDI3MzM4MzcyNDY4MzZBQTM2MDBDNjY3Rjc1YWUiLCJUeXBlIjoiQUNDIiwiY3JlYXRlZF9hdCI6MTYwMTI4MjM5NSwicnBuIjoia3JuOjEwMDE6d2FsbGV0OjhlNzZkMDAzLWQ2ZGQtNDI3OC04ZDA1LTUxNzJkOGYwMTBjYTphY2NvdW50LXBvb2w6ZGVmYXVsdCJ9',
items: [
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
},
... ,
Account {
address: '0xDa55e04202902733837246836AA3600C667F75ae',
chainId: 1001,
createdAt: 1601282395,
keyId: 'krn:1001:wallet:8e76d003-d6dd-4278-8d05-5172d8f010ca:account-pool:default:0x3f44e68b980e5781e1b162587d574ae24ef2d839caab57a6e5ccb78410508703',
krn: 'krn:1001:wallet:8e76d003-d6dd-4278-8d05-5172d8f010ca:account-pool:default',
publicKey: '0x04986f2695ff5ef75d074e8c43c5ee7ffe06bd43829e78012621192d84cbb0ccb827fa714af1521ea0a17b2b8368daa8e4d6fd06f67f5c133819fb0ef09050dfe3',
updatedAt: 1601282395
}
]
}
class Accounts {
cursor: eyJBZGRyZXNzIjoia3JuOjEwMDE6d2FsbGV0OmQ1YzM0NmY1LWJiODAtNGY0NS05MDkzLTU3ZTI1MjA1Y2RjODphY2NvdW50LXBvb2w6cG9vbDoweEExYmFkNWU0Mzk2OUVFMTQ5Q0UzRDRjQjQ4RGY5QThjYjEyQUY4ODciLCJUeXBlIjoiQUNDIiwiY3JlYXRlZF9hdCI6MTYwMTAyMDc1OCwicnBuIjoia3JuOjEwMDE6d2FsbGV0OmQ1YzM0NmY1LWJiODAtNGY0NS05MDkzLTU3ZTI1MjA1Y2RjODphY2NvdW50LXBvb2w6cG9vbCJ9
items: [class Account {
address: 0x416cAe65ba2BcccCa4d7Cc3bc31FF61b9C60bA97
chainId: 1001
createdAt: 1601282275
keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0x95494c8010aa3a70d3f13c2ef9ab8b3880ee2fa5cdda4ffbb548b9a486eb2cb0
krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
publicKey: 0x04cc7465b66f7496886dff8c0565247633fab72994d2a6f91fe8e9ebfe7bfd597f4aaab777ebc831b331c186641517625857c8eaa8eca3357eaf72caeff4f0bce7
updatedAt: 1601282275
multiSigKeys: null
threshold: null
}, class Account {
address: 0x2005f6B0bE729c9050bDa3650cdfd9497564CD71
chainId: 1001
createdAt: 1601020759
keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0x570d8faf589d62a90be90870545028ec607d1adfa744a570ae9c36f91637df62
krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
publicKey: 0x042fce35af923d12e91a34e9b47b4568314d41f891d6214789dd399a186b708a228af94fb0f92b279df9987c94cbd417f022b72b5b38614abe6c1ad66038baa5f0
updatedAt: 1601020759
multiSigKeys: null
threshold: null
},
.....
class Account {
address: 0xA1bad5e43969EE149CE3D4cB48Df9A8cb12AF887
chainId: 1001
createdAt: 1601020758
keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0x11886da5d3899c32aae4e87fdf413fbcea7204096b5c273174453d4f80091d8a
krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
publicKey: 0x04d06c1f9a170c830008752a9085ae4df45068402a7561cb280ae6ba8d69f2a843d4e7f2fd2d00bba7d2f8ffd3ee8265712f0f3672818dbe1196aaeeb8cb376a2d
updatedAt: 1601020758
multiSigKeys: null
threshold: null
}]
}
KAS API를 호출해 데이터를 불러올 때 모든 데이터를 한 번에 가져오기 어려울 때가 있습니다. 이 때 API를 여러 번 호출하여 지정된 개수만큼 데이터를 분할하여 불러오는데, 보통 데이터를 페이지 단위로 나눠 불러오기 때문에 이를 페이지네이션(Pagination)이라고 합니다. 자세한 내용은 여기에서 확인하세요.
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.