Skip to main content
POST
/
create-lock
curl --request POST \
  --url https://token-vesting.snek.fun/create-lock \
  --header 'Content-Type: application/json' \
  --data '{
    "address": "addr1...",
    "assetId": "policyId.assetNameHex",
    "amount": "1000000000",
    "lockEnd": 1735689600000,
    "stagesCount": 4
  }'
{
  "cbor": "84a500..."
}
Builds an unsigned transaction that locks tokens into the Snekfun vesting contract. Auth: Public

Request body

address
string
required
Caller’s Cardano address.
assetId
string
required
Token asset ID to lock.
amount
string
required
Amount of tokens to lock (bigint string). When divided by stagesCount, each stage amount must remain positive.
lockEnd
number
required
Unlock time as a Unix timestamp in milliseconds.
stagesCount
number
required
Number of vesting stages from 1 to 10. Tokens unlock in equal tranches across stages.

Response

cbor
string
Hex-encoded unsigned transaction CBOR.
curl --request POST \
  --url https://token-vesting.snek.fun/create-lock \
  --header 'Content-Type: application/json' \
  --data '{
    "address": "addr1...",
    "assetId": "policyId.assetNameHex",
    "amount": "1000000000",
    "lockEnd": 1735689600000,
    "stagesCount": 4
  }'
{
  "cbor": "84a500..."
}

Error response

cause
string
Machine-readable error code.
message
string
Human-readable error message.
Possible errors:
  • 400 INVALID_PARAMS — one or more required fields are missing or have the wrong type.
  • 400 INVALID_LOCK_ENDlockEnd must be in the future.
  • 400 INVALID_AMOUNTamount / stagesCount is zero after integer division, so the per-stage amount is not positive.
  • 500 SERVER_ERROR — unexpected server-side failure.
{
  "cause": "INVALID_LOCK_END",
  "message": "lockEnd must be in the future"
}