레거시 트랜잭션 조회
이 페이지는 Wallet API로 레거시 트랜잭션을 Klaytn에 보내거나 트랜잭션 정보를 조회하는 방법을 안내합니다.

튜토리얼에 앞서

  • API 호출에 사용되는 x-chain-id 값은 8217(Cypress) 또는 1001(Baobab)입니다.
  • API 호출에 필요한 필수 파라미터는 각 예시에 설명됩니다.
API 호출 시 사용자가 입력해야 하는 값은 중괄호 1개({})로 표시합니다. 사용자가 입력해야 하는 값은 아래 테이블과 같습니다.
항목
비고
chain-id
8217 또는 1001
Cypress(Klaytn 메인넷) 또는 Baobab(Klaytn 테스트넷)
access-key-id
인증 아이디
KAS 콘솔 - Security - Credential에서 발급받은 accessKeyId
secret-access-key
인증 비밀번호
KAS 콘솔 - Security - Credential에서 발급받은 secretAccessKey
krn
(optional) 계정 저장소의 ID
기본 계정 저장소 사용 시 불필요
API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Klaytn 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Klaytn 계정의 자산(KLAY 등) 이동이나 트랜잭션 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Klaytn 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.
KAS/Klaytn 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.

레거시 트랜잭션 전송

Klaytn에서 레거시 계정이란 공개키가 개인키로부터 파생되어 공개키와 개인키가 서로 의존관계로 묶여있는 계정입나다. 이 계정은 오직 "KLAY 전송, 스마트 컨트랜트 배포, 스마트 컨트랙트 실행"(레거시 트랜잭션)만 가능합니다. 자세한 내용은 레거시 트랜잭션을 확인하십시오.
KAS에서 처음 Klaytn 계정을 만들 때 기본적으로 레거시 계정으로 생성됩니다. 다중 서명, 데이터 앵커링 등 다양한 트랜잭션을 보내려면 레거시 계정을 다른 계정으로 업데이트해야 합니다.
트랜잭션을 보내려면 Klaytn Node에 트랜잭션을 보내야 하며, 트랜잭션 수수료를 지불해야 합니다. 이 예시를 따르면 이 트랜잭션을 보내는 계정이 트랜잭션 수수료를 직접 지불합니다. API를 호출하려면 계정 저장소와 계정을 생성하고 사용할 계정을 선택해야 합니다.
KAS SDK(caver-js/caver-java extension) 설치, 실행에 관한 자세한 내용은 KAS SDK를 확인하십시오. 계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.

API 호출

레거시 트랜잭션 전송 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다. 아래는 KLAY를 다른 계정으로 보내는 레거시 트랜잭션을 전송하는 예시입니다.
curl
javascript
java
1
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/tx/legacy" \
2
-u {access-key-id}:{secret-access-key} \
3
--header "x-chain-id: {chain-id}"
4
--data-raw "{
5
"from": "",
6
"value": "0x121111111111111111",
7
"to": "0x5bb85d4032354E88020595AFAFC081C24098202e",
8
"nonce": 0,
9
"gas": 1000000,
10
"submit": true
11
}"
Copied!
1
const tx = {
2
from: '0x602846DDC31F6Fc092edcF945565fBE9c48BdD7E',
3
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
4
value: 1,
5
gas: 25000,
6
submit: true
7
}
8
const result = await caver.kas.wallet.requestLegacyTransaction(tx)
Copied!
1
LegacyTransactionRequest request = new LegacyTransactionRequest();
2
request.setFrom("0x81bA6c299350719B18dFAEC38ba566fBd5Cd7202");
3
request.setTo("0x95E3Fd82eCd2b32Cae8618599971F5F47F4bC110");
4
request.setGas((long)25000);
5
request.setValue("0x1");
6
request.setSubmit(true);
7
8
TransactionResult result = caver.kas.wallet.requestLegacyTransaction(request);
9
System.out.println(result);
Copied!

API 응답

KLAY를 다른 Klaytn 계정으로 보내는 레거시 트랜잭션 전송 API의 응답은 아래와 같습니다.
curl
javascript
java
1
{
2
"from": "0x85b98485444c89880cd9c48807cef727c296f2da",
3
"gas": 1000000,
4
"gasPrice": "0x5d21dba00",
5
"input": "0x",
6
"nonce": 0,
7
"rlp": "0xf870808505d21dba00830f424094a311e7022a4db250689c89d99848f74ea5098f7d89121111111111111111808207f5a03e7173bf7a303b4e1bb6f8723b494bcaa196cf7b9d7af18a22ceda7f2e9c9226a057bf51a5f52d900d58470f5e28f25881eb6d3837502ba0bab13f022398ddbc26",
8
"signatures": [
9
{}
10
],
11
"status": "Submitted",
12
"to": "0xa311e7022a4db250689c89d99848f74ea5098f7d",
13
"transactionHash": "0x433d70e6bdbce725ac9472e9fe1242fa0e5bdcd1b60fa21b3dcadf858055b47b",
14
"typeInt": 0,
15
"value": "0x121111111111111111"
16
}
Copied!
1
TransactionResult {
2
from: '0x602846ddc31f6fc092edcf945565fbe9c48bdd7e',
3
gas: 25000,
4
gasPrice: '0x5d21dba00',
5
nonce: 0,
6
rlp: '0xf866808505d21dba008261a89476c6b1f34562ed7a843786e1d7f57d0d7948a6f101808207f6a033f988dfbaa5492609f140aed291e304b76780b0dffe00b083eef9b8a2a03098a037e50158ac76693abd2d8a29b17a1ad4229d75bd9dfc1c5daf96d2aef598844d',
7
typeInt: 0,
8
input: '0x',
9
signatures: [
10
Signature {
11
R: '0x33f988dfbaa5492609f140aed291e304b76780b0dffe00b083eef9b8a2a03098',
12
S: '0x37e50158ac76693abd2d8a29b17a1ad4229d75bd9dfc1c5daf96d2aef598844d',
13
V: '0x7f6'
14
}
15
],
16
status: 'Submitted',
17
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
18
transactionHash: '0xa3c30517f7d00774ea52760a87bbb98d2f6754ce1a1e0041765dd9a8086a557c',
19
value: '0x1'
20
}
Copied!
1
class TransactionResult {
2
from: 0x81ba6c299350719b18dfaec38ba566fbd5cd7202
3
gas: 25000
4
gasPrice: 0x5d21dba00
5
input: 0x
6
nonce: 949
7
rlp: 0xf8688203b58505d21dba008261a89495e3fd82ecd2b32cae8618599971f5f47f4bc11001808207f5a05434e573ae1dbf496806a8d5e8f090c15ee2de3b89e852577c835d04357b5ca3a0784296750de8130e75b7551f119f9650971932fb1efee1023e7858fbe7fe8ff0
8
signatures: [class Signature {
9
R: 0x5434e573ae1dbf496806a8d5e8f090c15ee2de3b89e852577c835d04357b5ca3
10
S: 0x784296750de8130e75b7551f119f9650971932fb1efee1023e7858fbe7fe8ff0
11
V: 0x7f5
12
}]
13
status: Submitted
14
to: 0x95e3fd82ecd2b32cae8618599971f5f47f4bc110
15
transactionHash: 0x7b78348d9c49d2a169e07efb8c39cde8bc06aa382017037ebe2de33debffd567
16
typeInt: 0
17
value: 0x1
18
code: null
19
message: null
20
transactionId: null
21
accountKey: null
22
}
Copied!
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.

트랜잭션 해시로 트랜잭션 결과 조회

트랜잭션 해시값을 입력하고 해당 트랜잭션 실행 결과를 조회합니다. 응답의 status 필드를 통해 트랜잭션 실행 성공 여부를 알 수 있습니다.
API를 호출하려면 계정 저장소와 계정을 생성하고 사용할 계정을 선택해야 합니다.
KAS SDK(caver-js/caver-java extension) 설치, 실행에 관한 자세한 내용은 KAS SDK를 확인하십시오. 계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.

API 호출

트랜잭션 조회 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
curl
javascript
java
1
curl --location --request GET "https://wallet-api.klaytnapi.com/v2/tx/0x62cbe2b959dd80b2dae88ccac3caba51c056989d2cb00bf7b4136c4945cc4644" \
2
-u {access-key-id}:{secret-access-key} \
3
--header "x-chain-id: {chain-id}" \
Copied!
1
const transactionHash = '0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6'
2
const result = await caver.kas.wallet.getTransaction(transactionHash)
Copied!
1
String txHash = "0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6";
2
TransactionReceipt receipt = caver.kas.wallet.getTransaction(txHash);
3
System.out.println(receipt);
Copied!
  • submit: false이면 트랜잭션이 전송되지 않고, 서명된 트랜잭션 RLP와 트랜잭션 정보를 반환합니다.

API 응답

트랜잭션 조회 API의 응답은 아래와 같습니다.
curl
javascript
java
1
{
2
"blockHash": "0x421648a9920d4f97e60dc1d93c62e2b0c2f3a8df5ddb79252ce693974ef7806c",
3
"blockNumber": "0xba",
4
"contractAddress": null,
5
"from": "0x325dbaf78b393dc2115138c86a58f897ed413aff",
6
"gas": "0xf4240",
7
"gasPrice": "0x5d21dba00",
8
"gasUsed": "0x5398",
9
"hash": "0x62cbe2b959dd80b2dae88ccac3caba51c056989d2cb00bf7b4136c4945cc4644",
10
"input": "0x6d656d6f",
11
"logs": [],
12
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
13
"nonce": "0x1",
14
"senderTxHash": "0x62cbe2b959dd80b2dae88ccac3caba51c056989d2cb00bf7b4136c4945cc4644",
15
"signatures": [
16
{
17
"R": "0xf3d42d9f0d82f15a2acd18a5fbde0b1aff26936b89fec5151da59bdad4c4ddef",
18
"S": "0x69a8b9319769c5dacffad42232d4d053d11722832169d71bca3f28b211f5f23d",
19
"V": "0x7f6"
20
}
21
],
22
"status": "Committed",
23
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
24
"transactionHash": "0x62cbe2b959dd80b2dae88ccac3caba51c056989d2cb00bf7b4136c4945cc4644",
25
"transactionIndex": "0x0",
26
"type": "TxTypeValueTransferMemo",
27
"typeInt": 16,
28
"value": "0x100"
29
}
Copied!
1
TransactionReceipt {
2
contractAddress: null,
3
blockHash: '0xc344d42a58d4e78a1f845aac70beed0ee4c159efece62c8cbcd236690edc5439',
4
blockNumber: '0x158bfb8',
5
from: '0x7de4b173cd3ca86ff4ab4c669a7d8b36d82db3de',
6
gas: '0x61a8',
7
gasPrice: '0x5d21dba00',
8
gasUsed: '0x5208',
9
hash: '0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6',
10
input: '0x',
11
logs: [],
12
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
13
nonce: '0x0',
14
senderTxHash: '0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6',
15
signatures: [
16
Signature {
17
R: '0x564e4a608fe6f2b9e344f648de929e8f6e60d6bafcd9a614a9dd71abce80a8ce',
18
S: '0x4e787e2dbaec7dd0a60040af9350ce571fa452fb3756d2774ac89aade836ff4e',
19
V: '0x7f5'
20
}
21
],
22
status: 'Committed',
23
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
24
transactionHash: '0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6',
25
transactionIndex: '0x0',
26
type: 'TxTypeLegacyTransaction',
27
typeInt: 0,
28
value: '0x1'
29
}
Copied!
1
class TransactionReceipt {
2
blockHash: 0xc344d42a58d4e78a1f845aac70beed0ee4c159efece62c8cbcd236690edc5439
3
blockNumber: 0x158bfb8
4
from: 0x7de4b173cd3ca86ff4ab4c669a7d8b36d82db3de
5
gas: 0x61a8
6
gasPrice: 0x5d21dba00
7
gasUsed: 0x5208
8
hash: 0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6
9
input: 0x
10
logs: []
11
logsBloom: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
12
nonce: 0x0
13
senderTxHash: 0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6
14
signatures: [class Signature {
15
R: 0x564e4a608fe6f2b9e344f648de929e8f6e60d6bafcd9a614a9dd71abce80a8ce
16
S: 0x4e787e2dbaec7dd0a60040af9350ce571fa452fb3756d2774ac89aade836ff4e
17
V: 0x7f5
18
}]
19
status: Committed
20
to: 0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1
21
transactionHash: 0x00a2e38b03abe9aeb85d9baa82ca3b1d4d55a4c2b354dc67ab23b82420f470f6
22
transactionIndex: 0x0
23
type: TxTypeLegacyTransaction
24
typeInt: 0
25
value: 0x1
26
contractAddress: null
27
codeFormat: null
28
feePayer: null
29
feePayerSignatures: null
30
humanReadable: null
31
}
Copied!
typeInt 변수는 트랜잭션 종류를 구별하는 값입니다. 트랜잭션의 종류에 관한 자세한 내용은 다음을 확인하십시오.
이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.