Execute Contract
For EVM: provide data as hex-encoded calldata. For Tron: provide functionSelector and parameters instead.
Base64URL-encoded JSON: { "publicKey": "<hex ed25519 pubkey>", "signature": "<hex ed25519 sig>" }.
The signature covers JSON.stringify([binding, Object.entries(params)]), where binding
is "<METHOD> <routePath>" (the server's route pattern, e.g. "POST /waas/create-wallet")
and params is the request body (POST) or query params (GET). This binds the stamp to
its own route so it cannot be replayed against a different endpoint. The one parameterized
route, GET /waas/scheduled-transaction/{scheduleId}, binds to the literal
"GET /waas/scheduled-transaction/:scheduleId", not the concrete ID. See the Signing
Requests guide for runnable examples.
Contract address
(EVM) Hex-encoded calldata
(EVM) ETH value in wei; (Tron) TRX value
(Tron) Function signature, e.g. transfer(address,uint256)
Transaction submitted
Bad request
Invalid or missing X-Stamp
Internal server error
POST /waas/wallet/contract/execute HTTP/1.1
Host: api.hinkal.io
X-Stamp: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 177
{
"organizationId": "text",
"userId": "text",
"fromAddress": "text",
"chainId": "text",
"to": "text",
"data": "text",
"value": "text",
"functionSelector": "text",
"parameters": [],
"nonce": "text"
}{
"status": "success",
"data": {
"txHash": "0xabc123..."
}
}Last updated