RWA

Store a file and register it as an RWA asset

Requires scope service:operate (operator keys only); funded mutation (503 MAINTENANCE while paused). Send raw file bytes; the gateway stores the file as a deal on the pinned provider and then registers an RWA asset backed by that deal in one flow. This operator path prices the deal server-side from size and duration unless ?price is given.

POST/api/v1/rwa/tokenizeTry it
iNote
Requires a key with the service:operate scope, sent as Authorization: Bearer <api-key>. Keys missing the scope are rejected with 403 — see Authentication.
!Heads up
Executes a real on-chain transaction on Robinhood testnet, funded by the gateway wallet. Returns 503 while funded mutations are paused for maintenance.

Query parameters

NameInTypeDescription
namerequiredquerystringAsset name.
typerequiredquerystringAsset type.
durationquerystringDeal duration (e.g. 12h, 30d). Default 30d.
pricequerystringTotal price in KEP. Default derived from size and duration.
valuequerystringDeclared asset value in KEP.
labelquerystringLabel for the backing document.

Body

application/octet-stream binaryrequired

Errors

CodeMeaning
400Missing name/type, empty body, or on-chain rejection.
401Invalid or missing API key.
403The API key lacks the required scope for this operation.
413Per-file limit or lifetime account upload allowance exceeded.
415Multipart uploads are not supported; send raw file bytes.
503Funded mutations are paused for maintenance. Sent with a Retry-After header (seconds).
507Provider/global storage capacity reserve would be crossed.
cURL
curl -X POST https://gateway.kepto.xyz/api/v1/rwa/tokenize?name=<name>&type=<type> \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @<file>
201 · application/json
{
  "assetId": 0,
  "name": "string",
  "assetType": "string",
  "metadataURI": "string",
  "status": "None",
  "declaredValueKep": "string",
  "issuer": "string",
  "owner": "string",
  "attestor": "string",
  "registeredAt": 0,
  "attestedAt": 0,
  "attestationCount": 0,
  "attestationsRequired": 0,
  "attestationCurrent": true,
  "backingIntact": true,
  "documents": [
    {
      "index": 0,
      "dealId": 0,
      "merkleRoot": "string",
      "label": "string"
    }
  ],
  "deal": {
    "dealId": 0,
    "client": "string",
    "provider": "string",
    "merkleRoot": "string",
    "sizeBytes": 0,
    "leafCount": 0,
    "status": "None",
    "createdAt": 0,
    "startTime": 0,
    "endTime": 0,
    "durationSeconds": 0,
    "totalPriceKep": "string",
    "collateralKep": "string",
    "paidOutKep": "string",
    "faultCount": 0
  },
  "contentUrl": "string"
}