KAIA 전송
Wallet API로 내 계정의 KAIA를 다른 Kaia 계정으로 전송하는 방법을 안내합니다.
튜토리얼에 앞서
-
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)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
KAIA는 Kaia에서 자체적으로 사용하는 암호화폐로, Klaytn이 Kaia로 하드포크되기 이 전에는 KLAY라는 명칭을 사용했습니다. KAIA에 관한 자세한 내용은 다음을 확인하십시오.
전송 계정이 트랜잭션 전송 수수료 지불
KAIA 전송 API는 KAIA를 다른 계정으로 보내는 트랜잭션을 전송합니다.
KAIA를 보내려면 Kaia Node에 트랜잭션을 보내야 하며, 트랜잭션을 보내려면 트랜잭션 수수료를 지불해야 합니다. 이 예시를 따라 KAIA를 보내면, 보내는 계정(Account)이 트랜잭션 수수료를 직접 부담합니다.
info
KAS SDK(caver-js/caver-java extension) 설치, 실행에 관한 자세한 내용은 KAS SDK를 확인하십시오.
계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.
API 호출
KAIA 전송 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/tx/value" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}" \
--header "Content-Type: application/json" \
--data-raw "{
"from": "0x5bb85d4032354E88020595AFAFC081C24098202e",
"value": "0x100",
"to": "0x2F87Ba64de5526F7880F21481Effbf950f70005c",
"memo": "memo",
"nonce": 0,
"gasLimit": 1000000,
"submit": true
}"
const tx = {
from: "0x13a9f77304cE84bb4EecA9E7d56AeE644bdd71bd",
to: "0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1",
value: 1,
gas: 25000,
memo: "memo",
submit: true,
};
const result = await caver.kas.wallet.requestValueTransfer(tx);
ValueTransferTransactionRequest request = new ValueTransferTransactionRequest();
request.setFrom("0x81bA6c299350719B18dFAEC38ba566fBd5Cd7202");
request.setTo("0x95E3Fd82eCd2b32Cae8618599971F5F47F4bC110");
request.setValue("0x1");
request.setSubmit(true);
TransactionResult transactionResult = caver.kas.wallet.requestValueTransfer(request);
System.out.println(transactionResult);
-
from
: KAIA를 보내려는 Kaia 계정 주소(EOA)입니다. 이 계정이to
계정으로 KAIA를 보내고 트랜잭션도 직접 전송합니다. -
submit
: false이면 트랜잭션이 전송되지 않고, 서명된 트랜잭션 RLP와 트랜잭션 정보를 반환합니다.
API 응답
KAIA 전송 API의 응답은 아래와 같습니다.
{
"from": "0xa4068f0d4e4ffad5945824cddd748ba2dc450330",
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 0,
"rlp": "0x10f886808505d21dba00830f4240942f87ba64de5526f7880f21481effbf950f70005c82010094a4068f0d4e4ffad5945824cddd748ba2dc450330846d656d6ff847f8458207f5a029e618253df93692d7f26712e0aa29393f3fb72e5170fe99a43257ed9d32c2e6a02257927ba0ebf9d80471bb56b52efc196c319b40d33cd1f0a566911376da805f",
"signatures": [
{
"R": "0x29e618253df93692d7f26712e0aa29393f3fb72e5170fe99a43257ed9d32c2e6",
"S": "0x2257927ba0ebf9d80471bb56b52efc196c319b40d33cd1f0a566911376da805f",
"V": "0x7f5"
}
],
"status": "Submitted",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionHash": "0x04cbfe6b4c1a39d4a8ab2fc4373a9da91e54762fdcbd90a7409a60cda0bea044",
"typeInt": 16,
"value": "0x100"
}
TransactionResult {
from: '0x13a9f77304ce84bb4eeca9e7d56aee644bdd71bd',
gas: 25000,
gasPrice: '0x5d21dba00',
nonce: 0,
rlp: '0x10f883808505d21dba008261a89476c6b1f34562ed7a843786e1d7f57d0d7948a6f1019413a9f77304ce84bb4eeca9e7d56aee644bdd71bd846d656d6ff847f8458207f5a0c2fcecfc7fac125a445ba304a71c368ddbbe65740b55ba5208de63cd3e59d123a020a7db292af31f373b027545e4333909b9fd5651fa0705b797856e0b12973aa0',
typeInt: 16,
input: '0x6d656d6f',
signatures: [
Signature {
R: '0xc2fcecfc7fac125a445ba304a71c368ddbbe65740b55ba5208de63cd3e59d123',
S: '0x20a7db292af31f373b027545e4333909b9fd5651fa0705b797856e0b12973aa0',
V: '0x7f5'
}
],
status: 'Submitted',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
transactionHash: '0x63b701e208d65d01b9efce91481b2b6a1d7bb2d44ce5c504df0e0b30a967fb75',
value: '0x1'
}
class TransactionResult {
from: 0x81ba6c299350719b18dfaec38ba566fbd5cd7202
gas: 1000000
gasPrice: 0x5d21dba00
input: null
nonce: 950
rlp: 0x08f8818203b68505d21dba00830186a09495e3fd82ecd2b32cae8618599971f5f47f4bc110019481ba6c299350719b18dfaec38ba566fbd5cd7202f847f8458207f5a058ee7baf19dc2d01bc31ce6dcd3bd69fd733667a335265c5b95a88283a318f9ca0790adf8eaf012c39f5a223359f6a3b32f7a854034646a963f7b30a487c4077c2
signatures: [class Signature {
R: 0x58ee7baf19dc2d01bc31ce6dcd3bd69fd733667a335265c5b95a88283a318f9c
S: 0x790adf8eaf012c39f5a223359f6a3b32f7a854034646a963f7b30a487c4077c2
V: 0x7f5
}]
status: Submitted
to: 0x95e3fd82ecd2b32cae8618599971f5f47f4bc110
transactionHash: 0x45633e36f1c9f08e4df0efbb5ef82bdfd65a38e8ee3eaff546fdfce74c879125
typeInt: 8
value: 0x1
code: null
message: null
transactionId: null
accountKey: null
}
KAIA 전송 트랜잭션이 보류(Pending) 상태일 때 API 응답값은 아래와 같습니다. 예를 들어, 다중 서명 계정으로 KAIA를 보낼 때, 필요한만큼 서명을 아직 받지 못했다면 KAIA 전송 트랜잭션이 보류 상태에 있을 수 있습니다.
// API 응답값으로 보류(Pending) 상태인 KAIA 전송 트랜잭션을 받음
{
"from": "0x6b0861be172884d6bcec75558b617287404d7073",
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 1,
"status": "Pending",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionId": "0x7ee5d33b931e1c172dee21027aeeca31c33ddd44efd02cd3fd4fdfa0a86f888e",
"typeInt": 16,
"value": "0x100"
}
TransactionResult {
from: '0x1fdad2294d82e14fe5b8228268bec0f3cb28e0af',
gas: 25000,
gasPrice: '0x5d21dba00',
nonce: 1,
rlp: undefined,
typeInt: 16,
input: '0x6d656d6f',
status: 'Pending',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
value: '0x1',
transactionId: '0xfd933ad07dd43264088cf7fc38ab4ec2db4ae780bd6e171680225a881a289c85'
}
class TransactionResult {
from: 0xbf19457580dcf1ed9e586f0c74747311a0d9d070
gas: 1000000
gasPrice: 0x5d21dba00
input: null
nonce: 120
rlp: null
signatures: null
status: Pending
to: 0x95e3fd82ecd2b32cae8618599971f5f47f4bc110
transactionHash: null
typeInt: 8
value: 0x1
code: null
message: null
transactionId: 0x86e3ab3978a73264af4fa968240b278f81196189803d038ef2da3e92f364c5aa
accountKey: null
}
- transactionId: 트랜잭션 ID입니다. 이 트랜잭션은 서명을 여러 개 받는 트랜잭션입니다.
info
typeInt
변수는 트랜잭션 종류를 구별하는 값입니다.
트랜잭션의 종류에 관한 자세한 내용은 다음을 확인하십시오.
이 API에 관한 자세한 내용은 다음을 확인하십시오.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
대납 계정이 트랜잭션 전송 수수료 지불
KAIA 전송 API는 KAIA를 다른 계정으로 보내는 트랜잭션을 전송합니다. 수수료 대납 방식을 사용하면 대납 계정이 트랜잭션 전송 수수료를 대납합니다.
KAS로 KAIA를 전송하려면 Kaia Node에 트랜잭션을 보내야 하며, 트랜잭션을 보내려면 트랜잭션 수수료를 지불해야 합니다. API를 호출하려면 계정 저장소, 수수료 대납 계정 저장소에 각각 계정, 수수료 대납 계정을 생성하고 사용할 계정, 수수료 대납 계정을 선택해야 합니다. 이 예시를 따라 KAIA를 보내면, KAIA를 보내는 계정(Account)이 아니라 다른 계정(여러분의 수수료 대납 계정)이 이 트랜잭션 수수료를 대신 부담합니다. KAS에서 제공하는 수수료 대납 방식에 관한 자세한 내용은 다음을 확인하십시오.
info
KAS SDK(caver-js/caver-java extension) 설치, 실행에 관한 자세한 내용은 KAS SDK를 확인하십시오.
계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.
수수료 대납 계정 저장소 생성, FeePayerAccount 생성, FeePayerAccount 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.
API 호출
수수료 대납 KAIA 전송 API를 호출합니다. API 호출 시 REST API 또는 SDKs(caver-js, caver-java extensions)를 사용할 수 있습니다.
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/tx/fd-user/value" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}" \
--header "Content-Type: application/json" \
--data-raw "{
"from": "0x5bb85d4032354E88020595AFAFC081C24098202e",
"value": "0x12",
"to": "0x2F87Ba64de5526F7880F21481Effbf950f70005c",
"memo": "memo",
"nonce": 0,
"gasLimit": 1000000,
"submit": true,
"feePayer": "0x85B98485444c89880cD9C48807CEF727C296F2da",
"feeRatio": 10
}"
const tx = {
from: "0xd2061D4bdbee433Dd2f99C28E25d301593f544e0",
to: "0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1",
value: 1,
gas: 50000,
memo: "memo",
feeRatio: 99,
feePayer: "0x44Ee3906a7a2007762E9d706dF6E4eF63FA1edA8",
submit: true,
};
const result = await caver.kas.wallet.requestFDValueTransferPaidByUser(tx);
FDUserValueTransferTransactionRequest request = new FDUserValueTransferTransactionRequest();
request.setFrom("0x81bA6c299350719B18dFAEC38ba566fBd5Cd7202");
request.setTo("0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1");
request.setFeePayer("0x31d845Ac80A0B2a38f6267CabcF34F8fA9DcD2B7");
request.setValue("0x1");
request.setSubmit(true);
FDTransactionResult result = caver.kas.wallet.requestFDValueTransferPaidByUser(request);
System.out.println(result);
-
from
: KAIA를 보내려는 Kaia 계정 주소(EOA)입니다. 이 계정이to
계정으로 KAIA를 보내고 트랜잭션도 직접 전송합니다. -
submit
: false이면 트랜잭션이 전송되지 않고, 서명된 트랜잭션 RLP와 트랜잭션 정보를 반환합니다. -
feePayer
: 사용자가 트랜잭션 수수료를 대납하는 계정을 별도로 사용할 때, 이 계정 주소를 여기에 입력합니다. KAS에서 먼저 수수료를 대납해주는 방식을 사용하려면 feePayer 파라미터 자체를 사용하지 않습니다. -
feeRatio
: 트랜잭션 수수료 전체에서feePayer
가 납부할 비율(1%~99%)입니다. 나머지 비율은 트랜잭션을 Kaia에 보내는from
이 직접 납부합니다.- 사용자 대납 계정으로 납부하거나 KAS에서 수수료를 대납하는 2가지 방식 모두, feeRatio를 사용할 수 있습니다.
API 응답
수수료 대납 KAIA 전송 API의 응답은 아래와 같습니다.
{
"feePayer": "0xe8ab1729ab614551021cf5cc22c0e037f5a82930",
"from": "0x9c56b45b7443bc73f47234199982481c64807f78",
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 0,
"rlp": "0x11f8e2808505d21dba00830f4240942f87ba64de5526f7880f21481effbf950f70005c12949c56b45b7443bc73f47234199982481c64807f78846d656d6ff847f8458207f6a06335f41b59276bd1d1c2b276d65b633545fe624b4c6eb854ac85c2bc0bfcb869a004e7b8910e1ce4cf47739dfa7801dd9b6f3d23de7acc932ad38c6bcc51429f2e94e8ab1729ab614551021cf5cc22c0e037f5a82930f847f8458207f6a0e4d799e18080ab2d9c82f979256d27ef87f68d19a07a6e9a57b006c4a639da12a0088df123474ad3a7ad6ef772603abc2ec209d9148ad3de29b475793240f54b41",
"signatures": [
{
"R": "0x6335f41b59276bd1d1c2b276d65b633545fe624b4c6eb854ac85c2bc0bfcb869",
"S": "0x4e7b8910e1ce4cf47739dfa7801dd9b6f3d23de7acc932ad38c6bcc51429f2e",
"V": "0x7f6"
}
],
"status": "Submitted",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionHash": "0xbc35a85f694e27d88d9e65ddb005fff0abd5efa180862184ec466a6945e1fd55",
"typeInt": 17,
"value": "0x12"
}
FDTransactionResult {
feePayer: '0x44ee3906a7a2007762e9d706df6e4ef63fa1eda8',
from: '0xd2061d4bdbee433dd2f99c28e25d301593f544e0',
gas: 50000,
gasPrice: '0x5d21dba00',
nonce: 0,
rlp: '0x12f8e2808505d21dba0082c3509476c6b1f34562ed7a843786e1d7f57d0d7948a6f10194d2061d4bdbee433dd2f99c28e25d301593f544e0846d656d6f63f847f8458207f5a0ed71aacf02d7dbd9742554eb866797f0fb66d48b5cb80b1cf4a40ec10229b246a0187353cddb8e680ae6038779d566a47a83230f017608946730e0841a4b0254bb9444ee3906a7a2007762e9d706df6e4ef63fa1eda8f847f8458207f6a07f058cec4b314881d4ba2be417e9439dc665e3f16bd888188536c8cc5ba61383a016e23a0e99b0dd0547a2cdc102d5f834a5516fa27c2b8216a43c637e16c0803d',
typeInt: 18,
input: '0x6d656d6f',
signatures: [
Signature {
R: '0xed71aacf02d7dbd9742554eb866797f0fb66d48b5cb80b1cf4a40ec10229b246',
S: '0x187353cddb8e680ae6038779d566a47a83230f017608946730e0841a4b0254bb',
V: '0x7f5'
}
],
status: 'Submitted',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
transactionHash: '0x8ed13565a89d6faad27ee5db742b93cf2dc6a0a2377ab2f72e87a5f1f3d82c6f',
value: '0x1',
feeRatio: 99
}
class FDTransactionResult {
feePayer: 0x31d845ac80a0b2a38f6267cabcf34f8fa9dcd2b7
from: 0x81ba6c299350719b18dfaec38ba566fbd5cd7202
gas: 1000000
gasPrice: 0x5d21dba00
input: null
nonce: 951
rlp: 0x09f8df8203b78505d21dba00830186a09476c6b1f34562ed7a843786e1d7f57d0d7948a6f1019481ba6c299350719b18dfaec38ba566fbd5cd7202f847f8458207f5a03c5a690aca465d2cbb1033d3b362af12414bbb9d70d7575a274b614072167ac0a03303ecac3db1dc67f606127f6cb9f4bd5e0dc811e735e660708adad60b1325e79431d845ac80a0b2a38f6267cabcf34f8fa9dcd2b7f847f8458207f6a0ff14b705e998c0d2351feec5d186d4fefd2d348756857b37111685c321df49a0a0517c890028c7fc33dc31454ef855bf80b882f3025e08433ee153c867de356c35
signatures: [class Signature {
R: 0x3c5a690aca465d2cbb1033d3b362af12414bbb9d70d7575a274b614072167ac0
S: 0x3303ecac3db1dc67f606127f6cb9f4bd5e0dc811e735e660708adad60b1325e7
V: 0x7f5
}]
status: Submitted
to: 0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1
transactionHash: 0x81d835fedb7028a3366cc7ab48e37cef6f7b00bdb52326e3def7879b8f5d6432
typeInt: 9
value: 0x1
feeRatio: null
transactionId: null
accountKey: null
}
KAIA 전송 트랜잭션이 보류(Pending) 상태일 때 API 응답값은 아래와 같습니다. 예를 들어, 다중 서명 계정으로 KAIA를 보낼 때, 필요한만큼 서명을 아직 받지 못했다면 KAIA 전송 트랜잭션이 보류 상태에 있을 수 있습니다.
// API 응답값으로 보류(Pending) 상태인 KAIA 전송 트랜잭션을 받음
{
"feePayer": "0x6a7a7f60346852d23be184aa948fd7c5053c2096",
"from": "0xe300034949f97251e3c5cf2c9fb5a159f713cae2",
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 1,
"status": "Pending",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionId": "0x036de62cde59113716ee3c8d453cf8cc0e2aac0b119d00c0290c1aacb5fe3847",
"typeInt": 17,
"value": "0x12"
}
FDTransactionResult {
feePayer: '0x44ee3906a7a2007762e9d706df6e4ef63fa1eda8',
from: '0x0a3b0582ab6cf551c8c93979e60f0c0398f4b15e',
gas: 50000,
gasPrice: '0x5d21dba00',
nonce: 1,
rlp: undefined,
typeInt: 18,
input: '0x6d656d6f',
status: 'Pending',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
value: '0x1',
feeRatio: 99,
transactionId: '0x90817ff0f06a02aff0bd210df779f0f0ad7aa33720a74ce61301ed68390faf17'
}
sdfsdf
- transactionId: 트랜잭션 ID입니다. 이 트랜잭션은 서명을 여러 개 받는 트랜잭션입니다.
info
typeInt
변수는 트랜잭션 종류를 구별하는 값입니다.
트랜잭션의 종류에 관한 자세한 내용은 다음을 확인하십시오.
이 API에 관한 자세한 내용은 다음을 확인하십시오.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.
KAS에서 트랜잭션 전송 수수료 지불
KAIA 전송 API는 KAIA를 다른 계정으로 보내는 트랜잭션을 전송합니다. 수수료 대납 방식을 사용하면 대납 계정이 트랜잭션 전송 수수료를 대납합니다. 이 API를 사용하면 여러분이 KAIA 전송 트랜잭션을 보낼 때 KAS의 GlobalFeePayer Kaia 계정이 트랜잭션 수수료를 여러분 대신 먼저 납부하고, 이 수수료를 여러분 KAS 계정에 추후 청구합니다.
KAS로 KAIA를 전송하려면 Kaia Node에 트랜잭션을 보내야 하며, 트랜잭션을 보내려면 트랜잭션 수수료를 지불해야 합니다. API를 호출하려면 계정 저장소에 계정을 생성하고 사용할 계정을 선택해야 합니다. 이 예시를 따라 KAIA를 보내면, KAIA를 보내는 계정(Account)이 아니라 다른 계정(KAS의 글로벌 수수료 대납 계정)이 이 트랜잭션 수수료를 대신 부담합니다. KAS 글로벌 수수료 대납 계정(KAS GlobalFeePayer)이 트랜잭션을 전송하는 Kaia 계정을 대신해 부담한 수수료는 추후 여러분의 KAS 계정에 청구됩니다. KAS에서 제공하는 수수료 대납 방식에 관한 자세한 내용은 다음을 확인하십시오.
info
KAS SDK(caver-js/caver-java extension) 설치, 실행에 관한 자세한 내용은 KAS SDK를 확인하십시오.
계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 Getting Started를 확인하십시오.
API 호출
KAS GlobalFeePayer 수수료 대납 KAIA 전송 API를 호출합니다. API 호출 시 REST API를 사용할 수 있습니다.
curl --location --request POST "https://wallet-api.klaytnapi.com/v2/tx/fd/value" \
-u {access-key-id}:{secret-access-key} \
--header "x-chain-id: {chain-id}" \
--header "Content-Type: application/json" \
--data-raw "{
"from": "0x5bb85d4032354E88020595AFAFC081C24098202e",
"value": "0x12",
"to": "0x2F87Ba64de5526F7880F21481Effbf950f70005c",
"memo": "memo",
"nonce": 0,
"gasLimit": 1000000,
"submit": true,
"feeRatio": 10
}"
const tx = {
from: "0xd2061D4bdbee433Dd2f99C28E25d301593f544e0",
to: "0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1",
value: 1,
gas: 50000,
memo: "memo",
feeRatio: 99,
submit: true,
};
const result =
await caver.kas.wallet.requestFDValueTransferPaidByGlobalFeePayer(tx);
request.setFrom("0x81bA6c299350719B18dFAEC38ba566fBd5Cd7202");
request.setTo("0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1");
request.setValue("0x1");
request.setSubmit(true);
FDTransactionResult result = caver.kas.wallet.requestFDValueTransferPaidByGlobalFeePayer(request);
System.out.println(result);
-
from
: KAIA를 보내려는 Kaia 계정 주소(EOA)입니다. 이 계정이to
계정으로 KAIA를 보내고 트랜잭션도 직접 전송합니다. -
submit
: false이면 트랜잭션이 전송되지 않고, 서명된 트랜잭션 RLP와 트랜잭션 정보를 반환합니다. -
feeRatio
: 트랜잭션 수수료 전체에서feePayer
가 납부할 비율(1%~99%)입니다. 나머지 비율은 트랜잭션을 Kaia에 보내는from
이 직접 납부합니다.- 사용자 대납 계정으로 납부하거나 KAS에서 수수료를 대납하는 2가지 방식 모두, feeRatio를 사용할 수 있습니다.
API 응답
KAS GlobalFeePayer 수수료 대납 KAIA 전송 API의 응답은 아래와 같습니다.
{
"feePayer": "0x85b98485444c89880cd9c48807cef727c296f2da",
"from": "0x9c56b45b7443bc73f47234199982481c64807f78",
"feeRatio": 10,
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 0,
"rlp": "0x11f8e2808505d21dba00830f4240942f87ba64de5526f7880f21481effbf950f70005c12949c56b45b7443bc73f47234199982481c64807f78846d656d6ff847f8458207f6a06335f41b59276bd1d1c2b276d65b633545fe624b4c6eb854ac85c2bc0bfcb869a004e7b8910e1ce4cf47739dfa7801dd9b6f3d23de7acc932ad38c6bcc51429f2e94e8ab1729ab614551021cf5cc22c0e037f5a82930f847f8458207f6a0e4d799e18080ab2d9c82f979256d27ef87f68d19a07a6e9a57b006c4a639da12a0088df123474ad3a7ad6ef772603abc2ec209d9148ad3de29b475793240f54b41",
"signatures": [
{
"R": "0x6335f41b59276bd1d1c2b276d65b633545fe624b4c6eb854ac85c2bc0bfcb869",
"S": "0x4e7b8910e1ce4cf47739dfa7801dd9b6f3d23de7acc932ad38c6bcc51429f2e",
"V": "0x7f6"
}
],
"status": "Submitted",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionHash": "0xbc35a85f694e27d88d9e65ddb005fff0abd5efa180862184ec466a6945e1fd55",
"typeInt": 17,
"value": "0x12"
}
FDTransactionResult {
feePayer: '0x1b71a63903e35371e2fc41c6012effb99b9a2c0f',
from: '0x9955607cd80972165d9de83b6c8c9cd2b6064d5b',
gas: 50000,
gasPrice: '0x5d21dba00',
nonce: 0,
rlp: '0x12f8e2808505d21dba0082c3509476c6b1f34562ed7a843786e1d7f57d0d7948a6f101949955607cd80972165d9de83b6c8c9cd2b6064d5b846d656d6f63f847f8458207f5a031d447fc2bcbfd908a1e89ef4ddd48575dcd2d1c86e434f030b474833e932963a00c64cfc67fb29f9f23666ebea18a93be7b9099b92a4c8b0b06dc86fe114e1f63941b71a63903e35371e2fc41c6012effb99b9a2c0ff847f8458207f5a0c6b5b13ed4e00130f96f545ad5572dbbf3028f5e1be9b58bc75c9115106dbc94a0260e0e0208abec114c96f8c49cadb3293445e39e1bfddb880f7e2281ddcb1008',
typeInt: 18,
input: '0x6d656d6f',
signatures: [
Signature {
R: '0x31d447fc2bcbfd908a1e89ef4ddd48575dcd2d1c86e434f030b474833e932963',
S: '0xc64cfc67fb29f9f23666ebea18a93be7b9099b92a4c8b0b06dc86fe114e1f63',
V: '0x7f5'
}
],
status: 'Submitted',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
transactionHash: '0xfa6ed4b9daeb2e5782ce7ee6a03637bed6cea15b22ab1b21a1481c6d44d29e8c',
value: '0x1',
feeRatio: 99
}
class FDTransactionResult {
feePayer: 0x1b71a63903e35371e2fc41c6012effb99b9a2c0f
from: 0x81ba6c299350719b18dfaec38ba566fbd5cd7202
gas: 1000000
gasPrice: 0x5d21dba00
input: null
nonce: 957
rlp: 0x09f8df8203bd8505d21dba00830186a09495e3fd82ecd2b32cae8618599971f5f47f4bc110019481ba6c299350719b18dfaec38ba566fbd5cd7202f847f8458207f6a0f3da42b6551b4c3e23357da5600f3bd91867600b0d7ffa387b3d57abe88e895ca0411e9435be6f89828094200f340bfe58c1b7a5ae812525c96cb074d9c58bcc44941b71a63903e35371e2fc41c6012effb99b9a2c0ff847f8458207f6a06beb7fc8ee9029d345b7f62e18f24dcfc4f4f2ebca52b6ee3ee54a5a9d380d1aa04ef2fb1c83edd10993957d5dfae5b8c7ef33af2f885fa8bab0d25213dc0e8266
signatures: [class Signature {
R: 0xf3da42b6551b4c3e23357da5600f3bd91867600b0d7ffa387b3d57abe88e895c
S: 0x411e9435be6f89828094200f340bfe58c1b7a5ae812525c96cb074d9c58bcc44
V: 0x7f6
}]
status: Submitted
to: 0x95e3fd82ecd2b32cae8618599971f5f47f4bc110
transactionHash: 0xca70429bc9503be280f4596451a1b4c2b42fc4a1bdebd526cbab3ab72e2a25f8
typeInt: 9
value: 0x1
feeRatio: null
transactionId: null
accountKey: null
}
KAIA 전송 트랜잭션이 보류(Pending) 상태일 때 API 응답값은 아래와 같습니다. 예를 들어, 다중 서명 계정으로 KAIA를 보낼 때, 필요한만큼 서명을 아직 받지 못했다면 KAIA 전송 트랜잭션이 보류 상태에 있을 수 있습니다.
// API 응답값으로 보류(Pending) 상태인 KAIA 전송 트랜잭션을 받음
{
"feePayer": "0x85b98485444c89880cd9c48807cef727c296f2da",
"from": "0xe300034949f97251e3c5cf2c9fb5a159f713cae2",
"gasLimit": 1000000,
"gasPrice": "0x5d21dba00",
"input": "0x6d656d6f",
"nonce": 1,
"status": "Pending",
"to": "0x2f87ba64de5526f7880f21481effbf950f70005c",
"transactionId": "0x036de62cde59113716ee3c8d453cf8cc0e2aac0b119d00c0290c1aacb5fe3847",
"typeInt": 17,
"value": "0x12"
}
FDTransactionResult {
feePayer: '0x1b71a63903e35371e2fc41c6012effb99b9a2c0f',
from: '0xc62e3d01cdd9a9f345b879d9d9e8f6c2f3756441',
gas: 50000,
gasPrice: '0x5d21dba00',
nonce: 1,
rlp: undefined,
typeInt: 18,
input: '0x6d656d6f',
status: 'Pending',
to: '0x76c6b1f34562ed7a843786e1d7f57d0d7948a6f1',
value: '0x1',
feeRatio: 99,
transactionId: '0x39e88788719e1df1fd40d5c30aa2f3e397393c6cfd2e2cb9e821cbea64477194'
}
class FDTransactionResult {
feePayer: 0x85b98485444c89880cd9c48807cef727c296f2da
from: 0xbf19457580dcf1ed9e586f0c74747311a0d9d070
gas: 1000000
gasPrice: 0x5d21dba00
input: null
nonce: 120
rlp: null
signatures: null
status: Pending
to: 0x95e3fd82ecd2b32cae8618599971f5f47f4bc110
transactionHash: null
typeInt: 8
value: 0x1
feeRatio: 0
transactionId: 0x86e3ab3978a73264af4fa968240b278f81196189803d038ef2da3e92f364c5aa
accountKey: null
}
- transactionId: 트랜잭션 ID입니다. 이 트랜잭션은 서명을 여러 개 받는 트랜잭션입니다.
info
typeInt
변수는 트랜잭션 종류를 구별하는 값입니다.
트랜잭션의 종류에 관한 자세한 내용은 다음을 확인하십시오.
이 API에 관한 자세한 내용은 다음을 확인하십시오.
이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.