An entrypoint that setups an expiry for a specific user's transfer permit or default expiry for all user's transfer permits. It fully implements TZIP-017.

Call parameters

type seconds_t          is nat

type blake2b_hash_t     is bytes

type set_expiry_t       is [@layout:comb] record [
  issuer                  : address;
  expiry                  : seconds_t;
  permit_hash             : option(blake2b_hash_t);


const dexCoreAddress = "KT1...";
const dexCore = await;
const hash = "...";
const params = {
    issuer: "tz1.../KT1...",
    expiry: 100, // in seconds
    permit_hash: hash, // or undefined, or null
const operation = await dexCore.methodsObject.set_expiry(params).send();

await operation.confirmation();


  • 412 - non payable entrypoint (can't accept TEZ tokens during call of an entrypoint).

  • NOT_PERMIT_ISSUER - a user is not an issuer of the permit.

  • EXPIRY_TOO_BIG - expiry from parameters is bigger than maximum available expiry (31 556 995 200 seconds or 1000 years).

Last updated