TZIP-16
{
"description": "Tezos Domains NameRegistry",
"version": "NameRegistry v1.1.0",
"license": {
"name": "Apache-2.0",
"details": "Apache License 2.0"
},
"homepage": "https://tezos.domains/",
"interfaces": [
"TZIP-012-11e599f9"
],
"permissions": {
"operator": "owner-or-operator-transfer",
"receiver": "owner-no-hook",
"sender": "owner-no-hook"
},
"views": [
{
"name": "resolve-name",
"description": "Resolves a name to an address, and optionally other data.",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "bytes",
"args": [
],
"annots": [
]
},
"returnType": {
"prim": "option",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes",
"args": [
],
"annots": [
"%name"
]
},
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "address"
}
],
"annots": [
"%address"
]
},
{
"prim": "pair",
"args": [
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
],
"annots": [
"%data"
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
],
"annots": [
"%expiry"
]
}
]
}
]
}
]
}
]
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP",
"args": [
{
"int": "2"
}
]
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes"
},
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
]
}
]
}
]
}
],
[
{
"prim": "DUP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "timestamp"
}
]
}
],
[
{
"prim": "DIG",
"args": [
{
"int": "3"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
}
]
]
},
{
"prim": "DUP"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "bool"
},
{
"prim": "True"
}
]
}
],
[
{
"prim": "NOW"
},
{
"prim": "COMPARE"
},
{
"prim": "LT"
}
]
]
},
{
"prim": "IF",
"args": [
[
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "DIG",
"args": [
{
"int": "3"
}
]
},
{
"prim": "PAIR",
"args": [
{
"int": "4"
}
]
},
{
"prim": "SOME"
}
],
[
{
"prim": "DROP",
"args": [
{
"int": "3"
}
]
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes"
},
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
]
}
]
}
]
}
]
]
}
]
]
}
]
}
}
]
},
{
"name": "resolve-address",
"description": "Resolves an address to a name.",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "address",
"args": [
],
"annots": [
]
},
"returnType": {
"prim": "option",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes",
"args": [
],
"annots": [
"%name"
]
},
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "address"
}
],
"annots": [
"%address"
]
},
{
"prim": "pair",
"args": [
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
],
"annots": [
"%data"
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
],
"annots": [
"%expiry"
]
}
]
}
]
}
]
}
]
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "NONE",
"args": [
{
"prim": "bytes"
}
]
}
],
[
{
"prim": "CAR"
},
{
"prim": "CDR"
}
]
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes"
},
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
]
}
]
}
]
}
],
[
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP",
"args": [
{
"int": "2"
}
]
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes"
},
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
]
}
]
}
]
}
],
[
{
"prim": "DUP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "timestamp"
}
]
}
],
[
{
"prim": "DIG",
"args": [
{
"int": "3"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
}
]
]
},
{
"prim": "DUP"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "bool"
},
{
"prim": "True"
}
]
}
],
[
{
"prim": "NOW"
},
{
"prim": "COMPARE"
},
{
"prim": "LT"
}
]
]
},
{
"prim": "IF",
"args": [
[
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "DIG",
"args": [
{
"int": "3"
}
]
},
{
"prim": "PAIR",
"args": [
{
"int": "4"
}
]
},
{
"prim": "SOME"
}
],
[
{
"prim": "DROP",
"args": [
{
"int": "3"
}
]
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "bytes"
},
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "timestamp"
}
]
}
]
}
]
}
]
]
}
]
]
}
]
]
}
]
}
}
]
},
{
"name": "get_balance",
"description": "Returns the balance of a given token_id for an owner",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "pair",
"args": [
{
"prim": "address",
"annots": [
"%owner"
]
},
{
"prim": "nat",
"annots": [
"%token_id"
]
}
]
},
"returnType": {
"prim": "nat"
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DUP"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "DUP",
"args": [
{
"int": "3"
}
]
},
{
"prim": "CDR"
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "FA2_TOKEN_UNDEFINED"
}
]
},
{
"prim": "FAILWITH"
}
],
[
]
]
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP",
"args": [
{
"int": "2"
}
]
},
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "0"
}
]
}
],
[
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "COMPARE"
},
{
"prim": "EQ"
},
{
"prim": "SWAP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "SWAP"
},
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "timestamp"
}
]
}
],
[
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
}
]
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "bool"
},
{
"prim": "True"
}
]
}
],
[
{
"prim": "NOW"
},
{
"prim": "COMPARE"
},
{
"prim": "LT"
}
]
]
},
{
"prim": "AND"
},
{
"prim": "IF",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "1"
}
]
}
],
[
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "0"
}
]
}
]
]
}
]
]
}
]
}
}
]
},
{
"name": "total_supply",
"description": "Returns the total supply of a given token",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "nat"
},
"returnType": {
"prim": "nat"
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DUP"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "FA2_TOKEN_UNDEFINED"
}
]
},
{
"prim": "FAILWITH"
}
],
[
]
]
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP"
},
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "0"
}
]
}
],
[
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "timestamp"
}
]
}
],
[
{
"prim": "SWAP"
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
}
]
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "bool"
},
{
"prim": "True"
}
]
}
],
[
{
"prim": "NOW"
},
{
"prim": "COMPARE"
},
{
"prim": "LT"
}
]
]
},
{
"prim": "IF",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "1"
}
]
}
],
[
{
"prim": "PUSH",
"args": [
{
"prim": "nat"
},
{
"int": "0"
}
]
}
]
]
}
]
]
}
]
}
}
]
},
{
"name": "is_operator",
"description": "Returns whether the specified address is an operator of a given token",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "pair",
"args": [
{
"prim": "address",
"annots": [
"%owner"
]
},
{
"prim": "pair",
"args": [
{
"prim": "address",
"annots": [
"%operator"
]
},
{
"prim": "nat",
"annots": [
"%token_id"
]
}
]
}
]
},
"returnType": {
"prim": "bool"
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET",
"args": [
{
"int": "4"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "FA2_TOKEN_UNDEFINED"
}
]
},
{
"prim": "FAILWITH"
}
],
[
]
]
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DUP"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
}
]
},
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "bytes"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
}
]
}
]
},
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "nat"
},
{
"prim": "address"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "nat"
}
]
}
]
}
]
}
]
}
],
[
{
"prim": "DUP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "SWAP"
},
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "timestamp"
}
]
}
],
[
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "GET"
}
]
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "bool"
},
{
"prim": "True"
}
]
}
],
[
{
"prim": "NOW"
},
{
"prim": "COMPARE"
},
{
"prim": "LT"
}
]
]
},
{
"prim": "IF",
"args": [
[
{
"prim": "SOME"
}
],
[
{
"prim": "DROP"
},
{
"prim": "NONE",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "address"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
}
]
},
{
"prim": "pair",
"args": [
{
"prim": "option",
"args": [
{
"prim": "bytes"
}
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
}
]
}
]
},
{
"prim": "pair",
"args": [
{
"prim": "pair",
"args": [
{
"prim": "nat"
},
{
"prim": "address"
}
]
},
{
"prim": "option",
"args": [
{
"prim": "nat"
}
]
}
]
}
]
}
]
}
]
]
}
]
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "DROP"
},
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "RECORD_NOT_FOUND"
}
]
},
{
"prim": "FAILWITH"
}
],
[
{
"prim": "DUP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "operators"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "EMPTY_SET",
"args": [
{
"prim": "address"
}
]
}
],
[
{
"prim": "UNPACK",
"args": [
{
"prim": "set",
"args": [
{
"prim": "address"
}
]
}
]
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "UNABLE_TO_PARSE_OPERATORS"
}
]
},
{
"prim": "FAILWITH"
}
],
[
]
]
}
]
]
},
{
"prim": "DUP",
"args": [
{
"int": "3"
}
]
},
{
"prim": "GET",
"args": [
{
"int": "3"
}
]
},
{
"prim": "MEM"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CAR"
},
{
"prim": "DIG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "CDR"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "COMPARE"
},
{
"prim": "EQ"
},
{
"prim": "AND"
}
]
]
}
]
}
}
]
},
{
"name": "token_metadata",
"description": "Returns the TZIP-12 metadata of a given token",
"implementations": [
{
"michelsonStorageView": {
"parameter": {
"prim": "nat"
},
"returnType": {
"prim": "pair",
"args": [
{
"prim": "nat",
"annots": [
"%token_id"
]
},
{
"prim": "map",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
],
"annots": [
"%token_info"
]
}
]
},
"code": [
{
"prim": "UNPAIR"
},
{
"prim": "SWAP"
},
{
"prim": "CAR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "CDR"
},
{
"prim": "SWAP"
},
{
"prim": "DUP"
},
{
"prim": "DUG",
"args": [
{
"int": "2"
}
]
},
{
"prim": "GET"
},
{
"prim": "IF_NONE",
"args": [
[
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "FA2_TOKEN_UNDEFINED"
}
]
},
{
"prim": "FAILWITH"
}
],
[
]
]
},
{
"prim": "EMPTY_MAP",
"args": [
{
"prim": "string"
},
{
"prim": "bytes"
}
]
},
{
"prim": "PUSH",
"args": [
{
"prim": "bytes"
},
{
"bytes": "444f4d41494e"
}
]
},
{
"prim": "SOME"
},
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "symbol"
}
]
},
{
"prim": "UPDATE"
},
{
"prim": "SWAP"
},
{
"prim": "SOME"
},
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "name"
}
]
},
{
"prim": "UPDATE"
},
{
"prim": "PUSH",
"args": [
{
"prim": "bytes"
},
{
"bytes": "30"
}
]
},
{
"prim": "SOME"
},
{
"prim": "PUSH",
"args": [
{
"prim": "string"
},
{
"string": "decimals"
}
]
},
{
"prim": "UPDATE"
},
{
"prim": "SWAP"
},
{
"prim": "PAIR"
}
]
}
}
]
}
]
}