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

Submit token permit

Submits an EIP-2612 permit signature so UR contracts can spend tokens from the user's wallet without an on-chain approve transaction. Used for card spending against the user's UR fiat balance.

post
/api/v1/token-permit
Authorizations
X-Api-SignaturestringRequired

Partner Auth: EIP-191 signature by the partner's registered backend key, with X-Api-Deadline and optional X-Api-PublicKey headers. See the Signature and verify guide.

Header parameters
tokenIdstringRequired

The user's URID (NFT token id).

networkstringRequired

Network identifier: 5000 for mainnet, 5003 for testnet.

signstringRequired

Signature generated by the user's wallet key (EIP-191).

hashstringRequired

SHA3/Keccak256 hash of the original request payload.

deadlinestringRequired

Signature expiry: server timestamp plus a validity window (max 20 minutes).

Body
addressstringRequired

Contract address of the token being approved.

amountstringRequired

Amount to approve (decimal string).

permitAmountstringRequired

Permit amount signed in the EIP-2612 permit (decimal string).

permitDeadlineintegerRequired

Unix seconds until which the permit is valid.

permitVintegerRequired

EIP-2612 signature component v.

permitRstringRequired

EIP-2612 signature component r (32-byte hex).

permitSstringRequired

EIP-2612 signature component s (32-byte hex).

Responses
200

Response envelope. For the user API, retCode 0 means success; for the partner API, code 0 means success. Business rejections return HTTP 200 with a non-zero code.

application/json

Standard response envelope for the user API (api.ur.app).

retCodeinteger · int64Required

0 on success; non-zero indicates failure.

retMsgstringRequired

Human-readable message; error details when retCode is non-zero.

resultanyOptional

Business payload. Shape depends on the endpoint; some endpoints return it as a JSON-encoded string.

timeNowinteger · int64Optional

Server timestamp in milliseconds.

post/api/v1/token-permit
POST /api/v1/token-permit HTTP/1.1
Host: api.ur.app
X-Api-Signature: YOUR_API_KEY
tokenId: text
network: text
sign: text
hash: text
deadline: text
Content-Type: application/json
Accept: */*
Content-Length: 121

{
  "address": "text",
  "amount": "text",
  "permitAmount": "text",
  "permitDeadline": 1,
  "permitV": 1,
  "permitR": "text",
  "permitS": "text"
}
200

Response envelope. For the user API, retCode 0 means success; for the partner API, code 0 means success. Business rejections return HTTP 200 with a non-zero code.

{
  "retCode": 0,
  "retMsg": "success",
  "result": {
    "status": 200,
    "txHash": "0xabc123..."
  },
  "timeNow": 1700000000
}

Last updated