For the complete documentation index, see llms.txt. This page is also available as Markdown.

Execute Contract

Execute a contract call (EVM or Tron)

post

For EVM: provide data as hex-encoded calldata. For Tron: provide functionSelector and parameters instead.

Authorizations
X-StampstringRequired

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.

Body
organizationIdstringRequired
userIdstringRequired
fromAddressstringRequired
chainIdstringRequired
tostringRequired

Contract address

datastringOptional

(EVM) Hex-encoded calldata

valuestringOptional

(EVM) ETH value in wei; (Tron) TRX value

functionSelectorstringOptional

(Tron) Function signature, e.g. transfer(address,uint256)

noncestringRequired
Responses
200

Transaction submitted

application/json
post/waas/wallet/contract/execute
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