Submitting the Transaction
Once the user has signed the message and approved the token transfer, it’s time to construct the submit
request to the Kima Transaction Backend. Use transactionValues
returned by the /submit/fees
endpoint.
Again, like for the message signing, the select the appropriate version based on whether the user is paying fees from the origin or target chain.
If the user is paying fees from the origin, use
transactionValues.feeFromOrigin.submitAmount
.If the user is paying fees from the target, use
transactionValues.feeFromTarget.submitAmount
.
Submitting the Transaction
POST /submit
Request Body:
originAddress
(Address): sending user addressoriginChain
(string): sending chainoriginSymbol
(string): sending token symboltargetAddress
(Address): receiving user addresstargetChain
(string): receiving chaintargetSymbol
(string): receiving token symbolamount
(bigint string): amount of token received by the target addressfee
(bigint string): amount of token that Kima consumes to pay gas fees for pulling & releasing token transactionsdecimals
(number): the number of decimals for the bigint amountsoptions
(string- JSON stringified object)chargeFeeAtTarget
(boolean): true if the user should pay fees on the target chain, false otherwisefeeId
(string): the fee id obtained from/submit/fees
signature
(string): the signature from the user's wallet from signing the message
For Bitcoin transactions:
Set these to the empty string or zero for non-BTC transactions
htlcCreationHash
(string): the tx hash locking the funds in the HTLChtlcCreationVout
(number): the output index of the locked funds in the HTLC creation transactionhtlcExpirationTimestamp
(string): the timestamp when the HTLC contract expires and the user can reclaim the funds locked therehtclVersion
(string)senderPubKey
(string): for bitcoin transactions this is the public key of the sender
Make sure the decimals for the bigint
amounts are all the same. You may need to convert the value for feeTotalBigint
to the same decimals as the submitAmount
before passing it to the backend.
Success Response:
height
: numbertxIndex
: numbercode
: number: error code; will be zero when successfultransactionHash
: stringevents
: Event[]type
: stringattributes
: Attribute[]key
: stringvalue
: string
rawLog
?: stringdata
?: MsgData[]msgResponses
: Uint8ArraygasUsed
: bigintgasWanted
: bigint
Get Transaction Id
The transaction Id will be needed to fetch the transaction status. The following code can be used to extract the Id from the submit
response.
Validation
If provided, the Kima Backend will use the url defined in the ENV var COMPLIANCE_URL
to get the risk score for the origin and target user addresses. If the score is anything other than low
it will respond with a 500
error.
Last updated