Skip to main content

GID controller abi doc

ExecuteMsg


1. Commit commitment

ExecuteMsg::Commit

Json Parameters

nametypedata typedescription
commitmentsrequiredarray/stringcommitemnt items

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"commit":{"commitments":["9232a542ecd323875f2ebac7db9f86ab606badb823af8628b7615ad78227e349"]}}" --from wallet $TXFLAG -y

2. Domain register

ExecuteMsg::Register

Json Parameters

nametypedata typedescription
owmeroptionalstringdomain owner
domainrequiredobjectdomain information
domain enum
  • domain::TopLevel
nametypedata typedescription
namesrequiredarray/stringregister names
duration_typerequiredstringdomain duration. year/permanent
secretrequiredstringregister secret
addressoptionalstringref address in commitemnt
resolveroptionalstringresolver contract address
  • domain::SecondLevel
nametypedata typedescription
owmerrequiredarray/stringsecond level domain owner
root_namerequiredstringtop level domain name
  • domain::Reverse
nametypedata typedescription
nameoptionalstringreverse name

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"register":{"domain":{"top_level":{"names":["TEST_NAME"],"duration_type":"year","secret":"gid_secret","resolver":"registry_address","address":"alice_addr"}},"owner":"alice"}}" --from wallet $TXFLAG -y

3. Register new domain by the name(only owner)

ExecuteMsg::OwnerRegister

Json Parameters

nametypedata typedescription
namesrequiredarray/stringregister names
duration_typerequiredintegerdomain duration. 0/year. 1/permanent
owmerrequiredstringdomain owner
resolveroptionalstringresolver contract address

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"owner_register":{"names":["alice"],"owner":"alice","duration_type":"year","resolver":"registry_address"}}" --from wallet $TXFLAG -y

4. Set contract config(only admin)

ExecuteMsg::SetConfig

Json Parameters

nametypedata typedescription
max_commitment_agerequiredintegermax commitemnt age
min_commitment_agerequiredintegermin commitemnt age
tier_pricesrequiredarray/tuple(integer, integer, integer)tier prices
registrar_addressrequiredstringregistrar contract address
ownerrequiredstringcontract owner
enable_registrationrequiredboolenable registration
level1requiredtuple(integer, integer, integer)level1 info
level2requiredtuple(integer, integer, integer)level2 info
level3requiredtuple(integer, integer, integer)level3 info
token_urioptionalstringdomain token uri

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"set_config":{"max_commitment_age":120,"min_commitment_age":20,"tier_prices":[[4,640000000,640000000],[5,160000000,160000000],[18446744073709551615,5000000,5000000]],"registrar_address":"new_registrar_address","owner":"new_owner","enable_registration":true,"level1":[9,4294967295,0],"level2":[3,2147483647,0],"level3":[1,0,0],"token_uri":"https://nft.gid.io"}}" --from wallet $TXFLAG -y

5. Withdraw register fee(only admin)

ExecuteMsg::Withdraw

Json Parameters

None

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"withdraw": {}}" --from wallet $TXFLAG -y

6. Renew by the name

ExecuteMsg::Renew

Json Parameters

nametypedata typedescription
namerequiredstringrenew domain name
duration_typerequiredstringdomain duration. year/permanent

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"renew":{"name":"alice","duration_type":"year"}}" --from wallet $TXFLAG -y

7. Renew by the name(only owner)

ExecuteMsg::OwnerRenew

Json Parameters

nametypedata typedescription
namerequiredstringrenew domain name
duration_typerequiredintegerdomain duration. 0/year. 1/permanent

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"owner_renew":{"name":"alice","duration_type":"year"}}" --from wallet $TXFLAG -y

8. Set enable registration(only admin)

ExecuteMsg::SetEnableRegistration

Json Parameters

nametypedata typedescription
namerequiredstringrenew domain name
enable_registrationrequiredboolwhether enable registration

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"set_enable_registration": true}" --from wallet $TXFLAG -y

9. Add reserved name (only admin)

ExecuteMsg::AddReservedNames

Json Parameters

nametypedata typedescription
namesrequiredstringreserved names

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"add_reserved_names": {"name": ["RESERVED_NAME"]}}" --from wallet $TXFLAG -y

10. Remove reserved name (only admin)

ExecuteMsg::RemoveReservedNames

Json Parameters

nametypedata typedescription
namesrequiredstringreserved names

Example call

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"remove_reserved_names": {"name": ["RESERVED_NAME"]}}" --from wallet $TXFLAG -y

11. Remove reverse record by caller

ExecuteMsg::RemoveReverseRecord

Json Parameters

Example call

None

 gotabitd tx wasm execute $CONTROLLER_CONTRACT $NODE "{"remove_reverse_record": {}}" --from wallet $TXFLAG -y

QueryMsg


1. Commit commitment

QueryMsg::GetCommitment

Json Parameters

nametypedata typedescription
namerequiredstringdomain name
ownerrequiredstringdomain owner
secretrequiredstringregister secret
addressoptionalstringref address in commitemnt
resolveroptionalstringresolver contract address

Binary Reponse

namedata typedescription
commitmentstringcommitment

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"get_commitment":{"names":["TEST_NAME"],"duration_type":"year","secret":"gid_secret","resolver":"registry_address","address":"alice_addr"}}" --from wallet $TXFLAG -y

2. Commitment timestamp

QueryMsg::CommitmentTimestamp

Json Parameters

nametypedata typedescription
namerequiredstringcommitment name

Binary Reponse

namedata typedescription
timestampintegercommitment timestamp

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"commitment_timestamp":{"commitment": "COMMITMENT_NAME""}}" --from wallet $TXFLAG -y

3. Rent price

QueryMsg::RentPrice

Json Parameters

nametypedata typedescription
namerequiredstringdomain name
duration_typerequiredstringreg duration. year/permanent

Binary Reponse

namedata typedescription
priceintegerrent price

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"rent_price":{"name": "alice", "duration_type": "year"}}" --from wallet $TXFLAG -y

4. Commitment age

QueryMsg::CommitmentAge

Json Parameters

None

Binary Reponse

namedata typedescription
maxintegermax age
minintegermin age

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"commitment_age":{}}" --from wallet $TXFLAG -y

5. Min registration duration

QueryMsg::MinRegistrationDuration

Json Parameters

None

Binary Reponse

namedata typedescription
durationintegermin reg duration

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"min_registration_duration":{}}" --from wallet $TXFLAG -y

6. Get domain tier price

QueryMsg::GetPrice

Json Parameters

None

Binary Reponse

namedata typedescription
tier_pricesarray/tuple(integer, integer, integer)tier prices

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"get_price":{}}" --from wallet $TXFLAG -y

7. Get registrar address

QueryMsg::Registrar

Json Parameters

None

Binary Reponse

namedata typedescription
registrar_addressstringregistrar address

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"registrar":{}}" --from wallet $TXFLAG -y

8. Get contract owner

QueryMsg::Owner

Json Parameters

None

Binary Reponse

namedata typedescription
ownerstringowner

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"owner":{}}" --from wallet $TXFLAG -y

9. Get reverse record

QueryMsg::GetReverseRecord

Json Parameters

nametypedata typedescription
addressrequiredstringreverse address

Binary Reponse

namedata typedescription
nodebytesreverse node
namestrignreverse name

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"get_reverse_record":{"address": "GOTABIT_ADDRESS""}}" --from wallet $TXFLAG -y

10. Get domain info by name

QueryMsg::GetNameInfo

Json Parameters

nametypedata typedescription
namerequiredstringdomain name

Binary Reponse

namedata typedescription
token_idstringdomain token id
ownerstringdomain owner
resolverstringresovler
expiresintegerdomain expires(second)

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"name_info":{"name": "alice"}}" --from wallet $TXFLAG -y

11. Get domain name preview

QueryMsg::GetNameInfo

Json Parameters

nametypedata typedescription
namerequiredstringdomain name

Binary Reponse

namedata typedescription
is_valid_nameboolis valid name
token_idstringdomain token id
node_hashbytesnode hash
labelbytesdomain name label
is_availablelabelis available
is_reservedintegeris reserved name

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"name_preview":{"name": "alice"}}" --from wallet $TXFLAG -y

12. Get contract config

QueryMsg::GetConfig

Json Parameters

None

Binary Reponse

namedata typedescription
max_commitment_ageintegermax commitemnt age
min_commitment_ageintegermin commitemnt age
tier_pricesarray/tuple(integer, integer, integer)tier prices
registrar_addressstringregistrar contract address
registry_addressstringregistry_address contract address
resolver_addressstringresolver_address contract address
ownerstringcontract owner
enable_registrationboolenable registration
level1tuple(integer, integer, integer)level1 info
level2tuple(integer, integer, integer)level2 info
level3tuple(integer, integer, integer)level3 info
token_uristringdomain token uri

Example call

 gotabitd tx wasm query $CONTROLLER_CONTRACT $NODE "{"get_config":{}}" --from wallet $TXFLAG -y