Gudix® Nuts

Nuts are digital goods. You can create it, own it, trade it and much more.

Gudix® Nullet

A nullet is a nut wallet. It is used to hold nuts and send nuts.

Gudix® Market

Nuts can be traded on the international market.

Gudix® Root System

Nuts are created in the root system. In order to create nuts, access to the root system and work performance is required.

Introduction

The Gudix® Net is accessible via an API interface. The interface guarantees a connection to any apps and web applications. The creation of a nullet and the use of Gudix® Net is free and unlimited. Gudix is responsible for ensuring that Nuts can change owners securely via the interface.

JSON-Format

Read the interface documentation for more details. The API interface only accepts JSON-formatted requests and also delivers responses in JSON-formatted form. The interface accepts JSON body information.

HTTP/HTTPS

We deliver via http and https. For security reasons, we recommend using HTTPS only. For performance reasons, GET requests can be made via http.

Errors

We strive to ensure the use of the interface as uniformly as possible. If a format is incorrect or something else goes wrong, we will return a status code 400 with a JSON error and a short explanation.

Requestmethods

Only POST or GET Methods allowed.

How to connect to the interface

Every program and every application that allow HTTP requests are suitable to access the Gudix® Net. A relatively simple use can be realized with Postman. Simply import the collection into POSTMAN, complete parameters and get started.

Enduser Interface

As an enduser it's recommended to use Telegram Bot Interface to access to the Gudix® Net for free.

Create nullet


To generate a nullet, all you need is an individual password. We encrypt the password and supplement it with server information, which results in a nullet id. The nullet id is for private use only and not for the public. Only creator can see the nullet id, not even we save your nullet id. Only those who have the nullet id and password can have your nuts. We recommend that you print out the nullet id for restore purpuse. We also see an advantage in having the nullet id generated as a QR code.


https://api.gudix.net/createnullet
POST

password string

Random String and free of choice in characters and length. Please choose high security password in your own choice. The password can't be changed. Choose wise


webhook string

we send POST Request to this URL when recieving nuts.

JSON Body:
{
	"password": "whatYouWant"
}
Response:
{
    "nullet": "C8BNwokULVf2YmvUJtI2_RI3iEdLKRdG3YpVEMnXlSrFFAz0x0uz62bs4vTsSy0X22GB3lJdLltA9Ptd8lwv7G_Cy12M5QA4xGjROaRaY1VzGUOvOcrs3vnHHRdus92kCUGWvD6G2bMwJimqHJKn0FtOwIZvRUi0B3p4RutF7Zp1_cXQBN0HjqjklXl3gRid4K0xIPDA",
    "reciever": "Sx-QgbgH5uE6_R-Ylg2x1dQ3rZsb2v8H8BivVXwpbB4jqaqQb2SYPVS7ua1GiyA26drdErobl_kb5bIn3y405LtklmxEQwo0Ach0zbVkfEQyF_k5qkS3igbx99NN_XTK7jRFk3yka-jub0pLrhdzvFJ5hqyN38ZT55Hap-UEqst1_sypRpwxNZJichKWJEZt8AFx5ClFT23_iZPuLqvNsad-CtQKdGElCbZw4i_Pq4qguBhlbZQL9hsdcRXULoQpk7c=",
    "message": "Do not share your Nullet-ID. Just share reciever id to get nuts."
}

Create reciever address


Any number of receiver addresses can be generated with just one nullet. A receiver can contain a webhook, which receives a POST request from each time it recieves some nuts. We recommend testing the webhook function at webhook.site.


https://api.gudix.net/reciever
POST

nullet string

Nullet ID


webhook string

we send POST Request to this URL when recieving nuts.


appservice boolean

to activate appservice on this nullet, set this true


appfee integer

an app recieve an appfee when transmitting nuts from sender to reciever.

JSON Body:
{
	"nullet": "p48OxschQ6icQzqEkk64B08F23HTxdNl4VV6zxWsTAZ3eUcTzdQaxoZ1CupKk8P7OaZlThC5QL3hVGSYAEhn1UJwb7IwTgYABWeyRSzErDd5pHmtyOmnzPRUf--0hpM1fuVhzhL6NZqmYottoHaSlcf_3oPBQjg91izV-j6reRHq4bsGNj3DbGw3PZkJcRlgG_rn_wpR",
	"webhook": "https://webhook.site/b945870a-4419-4649-a4f0-4332027869bc",
	"appservice": true,
	"appfee": 20
}
Response:
{
    "reciever": "9ZS7UFZjlE9jdR8uBZCgJ8ttusSfvHQDmfz7jdOjbGkxwDzrUBo5oWg_zymqdd7bwjDlloGeYkOvxYAqaFvrNKNSv5XE8WyxfGYCtQehn5IeRm8acXMtpgKTdh7926LEEBBuMKHlyfLsAtOWoreuJhCCKw5yPN2Co-4ZyN-Xr4VwtTiKy_FxHkx4JlKCuG1nPucV6ueJGqxf0Unc1OM6t16IJitgmYW8-VKz9JSN11nmFJFRC0iDwc014jfetbtkh8a3zgQCsv7WFzOLE7NyCoLQ4X6SEi2H55S_PUBZoEYYTOfB-lzw-KaemwxszlAXwwj4AnpTjHuMdWfsoMFea14SwZVKG-3OeQLG2Oiq9PliSPXyyIvynDY5_b2p3ImNRAiw"
}

Send nuts


To send nuts, you need a recipient's reciever address. You cannot send nuts to a nullet id.

Paper
Nuts are digital goods that you can get out of the digital world if necessary. Send the nuts to the reciever gudix_paper and you will get a transaction code that you can print out and bring to safety. The printed-out nuts are like a physical wallet; if you have the paper, you can put the nuts back into the network. You can also provide the paper with a separate password to ensure additional security. Think of it like a bearer share. The one who owns the bearer share can dispose of it.


https://api.gudix.net/sendnuts
POST

sender string

Nullet ID


password string


nuts integer

is required, also for paying invoice to check the correct amount.


guarantee integer

To pay only guarantee of an invoice what equals to product send confirmation it required to send guarantee and no nuts. If you pay guarantee, you have to send invoice as well.


guaranteereciever integer

Just required if sending guarantee. Define a webhook to get informed when getting back the guarantee.


invoice string

pay invoice without any further parameter needed. Just send the invoice code. The invoice code you get with the invoice function.


creditnotereciever string

if paying appinvoice optional define a reciever with webhook to get informed in case of cancelling invoice and get information about getting back the nuts. If no moneybackreciever we send back the nuts to your nullet


reciever string

choose gudix_paper as reciever if you want to store the nuts offline and take it out of the network.


message string

reciever of nuts can read this message


paperpw string

if sending nuts to offline papers you can protect paper with paper password.

JSON Body:
{
    "sender": "bgNPuIUVHuOEZF6OyrLlr2b6Hjtxh5KRqc3Rc7fhMUGFIcnnewVr1TS4PQZisy_7krm4061auEtkptVcfVGTd9ogh8902AsgLQfaaciEGqzUGbsC0lznJQL09at9OOkEcqji9M1PUbGHcjFVtGZqpPfPMeDEOJDf1bQFdrTLRoxpNFhlZxZ96u0I7lxufoy0sHCMaqtg",
    "password": "asdfasdf",
    "reciever": "gudix_paper",
    "nuts": 600,
    "message": "have fun with your Gudix® Nuts"
}
Response:
{
    "transaction": "vNxSkJdIU6W5zKaILcpQ2hHLrZseSBqyqLZHjUocRxkhFainN_-xHyrkmx7JH_vzdXB7MipvceqnboNlE1C6Bb-wWehVVt2tAg3Dio3Z9nf50MbN-rzS4Vd1kC5m9ESB_VjrPXspdDHUHAVCJlZX85BQQ8qnxUmRQXmuTNqXfW6v6bnuEbXu8WJEtdrYyGMXJrn2jM6BVMaEA0cizCnVrxj78TTYIi9uIIgQ0VUg71EmA5tU1XC0VbiIV0Lm2J_KHWZOmOR6bQta-fII8LrOihcbHAd8Bew_-N0_A84SIrdXqdwj2ZiN3psuDCKskKCuGxcYcYriRvoM1EXC0Abv7I0B9PO7pFU_aYlecs79VdNrNrgwdBfXT-_U5K3lg_U9AwiDn8lT98cOcJ4lLJABvcqBNn6OX7C-zLcGhgtzWwXCV4aACXNcig0Of_TIRwwlgbnKSNSkOGhnvZ5zZ_c9iOA6YVp9NL_bRQPB-NGXmyXs6fekZvgB9iuwhUmm47meRiZHNwRojWYsLqx5IJmb2H_w6mc="
}

Invoice


To predefine some data for sending nuts it's possible to create an invoice. The Invoice contains all the necessary data to send nuts the fast way.

Also you can use a third party to create invoices and earn appfee. Some examples: If you have a plattform and your users use your plattform to sell products so you can now provide a secure and anonym payment service. The buyer buys the product the seller sells. You create an invoice with reciever address from the seller, also you define an additional appfee, what is your return in the end. After creating an invoice the product buyer can easy pay the nuts. You and the product buyer gets an invoice id, what can be used at the end to release the nuts. After you make sure the product seller distributed the product or the product buyer gets the product you can release the invoice and the nuts. You get the appfee and the product seller gets the nuts

another example: You're a broker or an intermediary and you want to sell nuts from a nut seller to a nut buyer. The same way you can create an invoice with nut reciever and some appfees. When the Nut buyer buys the nuts he sends you the money and you can release the invoice because the nut buyer did pay the nuts. Now it's your turn to send the money from the nut buyer to the nut seller.


https://api.gudix.net/invoice
POST

reciever string

First you need a reciever address. You can define a webhook with for example an invoice number. If someone pays the invoice we send a POST request to webhook and you get the invoice number back.


nuts integer

nuts definition is optional. If nuts are not defined, the sender can define how many nuts he will pay.


guarantee integer

It's possible to define a guarantee. If a guarantee is defined, plattform has to pay the guarantee first. After the invoice payer pays a total amount of nuts + appfee + guarantee in one payment. In this state it's possible to release and to cancel an invoice in case of product sender do not send product. The nut reciever of nuts (product sender) can now bring his part (send product) and parallel he also have to pay with the same invoice code the amount of guarantee nuts to give a guarantee he sended the product (use guarantee parameter and use sendnuts function). After this it's not possible for app and for nut sender to cancel the invoice, just release. After release every guarantee payer gets back the guarantee.


message string


nullet string

just required when creating an invoice as a third party


password string

just required when creating an invoice as a third party


appfeereciever string

The appfee reciever you get when creating a new reciever with reciever. When creating an appfeereciever you can define the hight of the appfee and you can define a webhook to get informed when someone pays the invoice. Keep it in mind: You can pass GET-Paramters with every webhook.


customid string

as an option you can define your own invoice id


todo string

you have to send todo parameter appinvoice if you want to use appservice. If you do not send this parameter it's defined as simple invoice as default.

JSON Body for simple invoice WITHOUT appservice:
{
    "reciever": "spQapZoam6ARcHcc8fouBvj2tP5l412oLANEcdiOXml_Qe3kATChS-kjsZYQ51qfXo_m9YEvXUQcEM1P1vrV0GJtbph2g1A-6DDdGvsH4-S80wbstIQUytnGpFDfUVqpzzH8iMDO54QDXFcqjXjbGYL7XM_Ldh5X_dKoGVFtBmoE5DG_z-Ku_q_YK7_GjCD66IcStlUYO6YDkK0Mj4vgwGzpiYwAsbF8a16INjcsG8h6iYvTMB2V3NZxmrz6971VWuJrEnl9nkqTdU4Fx0mc4ufukNzIzSa4CrpNiiOji-q4pwgSCI6pG4it8NM=",
    "nuts": 10,
    "message": "something to write"
}
Response:
{
    "invoice": "AmMSspyerF6L4_vYYV7SbGig_3Gd203csXrFtFKRpFDY5VaagiSsDglfZt8sJV7uRILgve6xuGhF_JiQjwznW62Q0dCVRkK4hScnIoUMOfdpiKsT63yTcqq6os45C0PyJ0wpmdFTLBmuUNG1o3Cv_YdsZJnCF0n8kkPqFzxwT7fj7Qnc4T_3MXma8JsX29tlriF5V7_sg0-RCEH_JX7VW7f3rYSzQer7pFnHW1993CnwxzpXWiZpb6ABVDPMG-eOClk1j4ypI62P8R9ZqXOMHU1X8hsPCL5Hq7mw_j9p9GVfCm7-BHerxaClv-QwdJwrmrUw3n8bWqaR_bm1jWvl92fAM54E1kt69WMSThpXFZBunAKIQJg-f7V1uksOzJ-7ijYahrKoKXLxSL2whFYAXL12NNS8lbyb"
}
JSON Body for third party invoice WITH appservice:
{
	"nullet": "bgNPuIUVHuOEZF6OyrLlr2b6Hjtxh5KRqc3Rc7fhMUGFIcnnewVr1TS4PQZisy_7krm4061auEtkptVcfVGTd9ogh8902AsgLQfaaciEGqzUGbsC0lznJQL09at9OOkEcqji9M1PUbGHcjFVtGZqpPfPMeDEOJDf1bQFdrTLRoxpNFhlZxZ96u0I7lxufoy0sHCMaqtg",
    "password": "asdfasdf",
	"todo": "appinvoice",
    "reciever": "9ZS7UFZjlE9jdR8uBZCgJ8ttusSfvHQDmfz7jdOjbGkxwDzrUBo5oWg_zymqdd7bwjDlloGeYkOvxYAqaFvrNKNSv5XE8WyxfGYCtQehn5IeRm8acXMtpgKTdh7926LEEBBuMKHlyfLsAtOWoreuJhCCKw5yPN2Co-4ZyN-Xr4VwtTiKy_FxHkx4JlKCuG1nPucV6ueJGqxf0Unc1OM6t16IJitgmYW8-VKz9JSN11nmFJFRC0iDwc014jfetbtkh8a3zgQCsv7WFzOLE7NyCoLQ4X6SEi2H55S_PUBZoEYYTOfB-lzw-KaemwxszlAXwwj4AnpTjHuMdWfsoMFea14SwZVKG-3OeQLG2Oiq9PliSPXyyIvynDY5_b2p3ImNRAiw",
    "nuts": 10,
    "appfeereciever": "Sx-QgbgH5uE6_R-Ylg2x1dQ3rZsb2v8H8BivVXwpbB4jqaqQb2SYPVS7ua1GiyA26drdErobl_kb5bIn3y405LtklmxEQwo0Ach0zbVkfEQyF_k5qkS3igbx99NN_XTK7jRFk3yka-jub0pLrhdzvFJ5hqyN38ZT55Hap-UEqst1_sypRpwxNZJichKWJEZt8AFx5ClFT23_iZPuLqvNsad-CtQKdGElCbZw4i_Pq4qguBhlbZQL9hsdcRXULoQpk7c=",
    "message": "some optional text",
    "customid": "custom_identification_id"
}
Response:
{
    "invoice": "-bmq4nMNZUmlHn79jIEdQ6c00gVxCvCfIFAwv2EsjnAfx-vbZiod4ZyHwMOc81kPZ13UbRPBaEo0syyBWsb-Uyor5HPGz6H_5BtGwFRDQSNekvVrcTCcOoNfJ7m9XTdunReHst7igRYh3PhZLUIxkhznJABqmuxOC-qy_lfO5HPdJnmxBY16K4DbxbcPHZ0t25mXaCuC6T90aSAmJUZFzQh2WiiZOBVBvApGbPppObRjY5aJaeF-JIeZSTq7h_BKlcy6bQOVI6syqgTIjoEfYc1yLeec9aqL29P_mpDJSYWsiN5l_3SGPgdBTH32ZBNFqhLieZxHU6tYzMSQSI7jb72SCMTdsks_aED7VeYCLiNPJNc-Vdm7v11Oo2p_cnrnoCo77b2QRdhlmRSlD_Ces_0-uylzVf5oPDPPhs61VRj8NmvOwBgFC0LfatPFZiP07zaH-sZsada-cz4p059nucRSaJ3HmaHFAMQhVKeiXkJ2pZJRKxfAAcY7R4TxvbKxeYBnv2skY0yt8DnhbunWGvLjeTI_V6LhnnmPUMMNj8NFBDImpuYJFW5zQFcVmDBhYvaTexs=",
    "nuts": 100,
    "appfee": 2,
    "guarantee": 10,
    "invoiceid": "5ecca3509045891d072f1eb3"
}

Nullet balance


The nut balance is accessible with the nullet id.


https://api.gudix.net/balance
POST

nullet string

Nullet ID

JSON Body:
{
	"nullet": "bgNPuIUVHuOEZF6OyrLlr2b6Hjtxh5KRqc3Rc7fhMUGFIcnnewVr1TS4PQZisy_7krm4061auEtkptVcfVGTd9ogh8902AsgLQfaaciEGqzUGbsC0lznJQL09at9OOkEcqji9M1PUbGHcjFVtGZqpPfPMeDEOJDf1bQFdrTLRoxpNFhlZxZ96u0I7lxufoy0sHCMaqtg"
}
Response:
{
    "balance": "79150"
}

Paper balance


A paper is a document outside the network. The document was created with Send nuts to "gudix_paper". Comparable to a bearer share.


https://api.gudix.net/paperbalance
POST

paper string

This is the transaction id from sending nuts to the reciever gudix_paper

JSON Body:
{
    "paper": "a2Ld1KK-FnuuOUk9oIMf7SF3QZsjv3Jo4LOt05xL8FUBePxEC6lV5EbMQek6Dhqd_RtzSTBQuV0gX2AxNeSjaJRRAixPO1vCzKMtIRCi2NwA5R0eDxtvqBrWLjVFGEUOasQuDWchAQmwdSNbFaXs7v5e0Ve-T4wAvC9Eoqy5Izm5hU5Dr9mfeL6v8-t6q9wCinr0HkjgSb9U99d4JdP9kzjzUPpgH2fPru9pwlj6JoduzSO4OCUzop9kzqbqjkqgZZnZ3u8hlvgdgCzoYK2OyVwgL6H8ohL3AZ9iOz1XpY6qdm8-2lE5TmTTjXj2V-RUeCTZw3Au0HwlIqRQqHdBO29l4Ikt20t9VGCRYUeQPFz1Sn4cvGO4fKJ5q9fxBu9nCRDBiUiJFxe1qBmT5FFv8QGZ5TUAfYb3X9Ee3ic3E4j_3f4-0LhbkHv4BQuPQSGSsDXP1veV--QzCP8cRvHDf0EZwsY_NdYmEaTnave1-HnirlSej5kP9yhBPWMW4edgX5nKq8rQB7rYvWBFjJeHzf5lj1oh6sKVTimiAlupm0bp8iH0P9PsoAmR22-sX9qHwYdwBbs8Nerq9VFKxdbx-F6wFnoWccN6dY4ta3vnuXSbLtZoT0Lr4dc57xm8jbFZ2-yFqHmCfr9vxUX443Y4U2uCwRrnDNiFoQB4LaUTWy_xMSQIHX_Y8tm7UohVS14Whe1VBIPBr15NWNnLk0YJvkfpgz2Q7DQY4TRd7u09uKgrmeN1yacgOkiiFe5Bss8="
}
Response:
{
    "balance": "600"
}

Convert paper to nuts


You can bring nuts on paper documents back into the digital world.


https://api.gudix.net/paper2nullet
POST

paper string

This is the transaction id from sending nuts to the reciever gudix_paper


paperpw string

Just if paper is protected with separat password


reciever string


nuts integer

JSON Body:
{
	"paper": "a2Ld1KK-FnuuOUk9oIMf7SF3QZsjv3Jo4LOt05xL8FUBePxEC6lV5EbMQek6Dhqd_RtzSTBQuV0gX2AxNeSjaJRRAixPO1vCzKMtIRCi2NwA5R0eDxtvqBrWLjVFGEUOasQuDWchAQmwdSNbFaXs7v5e0Ve-T4wAvC9Eoqy5Izm5hU5Dr9mfeL6v8-t6q9wCinr0HkjgSb9U99d4JdP9kzjzUPpgH2fPru9pwlj6JoduzSO4OCUzop9kzqbqjkqgZZnZ3u8hlvgdgCzoYK2OyVwgL6H8ohL3AZ9iOz1XpY6qdm8-2lE5TmTTjXj2V-RUeCTZw3Au0HwlIqRQqHdBO29l4Ikt20t9VGCRYUeQPFz1Sn4cvGO4fKJ5q9fxBu9nCRDBiUiJFxe1qBmT5FFv8QGZ5TUAfYb3X9Ee3ic3E4j_3f4-0LhbkHv4BQuPQSGSsDXP1veV--QzCP8cRvHDf0EZwsY_NdYmEaTnave1-HnirlSej5kP9yhBPWMW4edgX5nKq8rQB7rYvWBFjJeHzf5lj1oh6sKVTimiAlupm0bp8iH0P9PsoAmR22-sX9qHwYdwBbs8Nerq9VFKxdbx-F6wFnoWccN6dY4ta3vnuXSbLtZoT0Lr4dc57xm8jbFZ2-yFqHmCfr9vxUX443Y4U2uCwRrnDNiFoQB4LaUTWy_xMSQIHX_Y8tm7UohVS14Whe1VBIPBr15NWNnLk0YJvkfpgz2Q7DQY4TRd7u09uKgrmeN1yacgOkiiFe5Bss8=",
	"reciever": "3RTRrN7yKPnE_2s4GxjsDLQgQvLX6WkVBCv7c_HoNiUfgw8W9zH-YdZM7XUWAq99xEMr9SMj6RdHITZtFGqlR72M1uaXCEkWFvrCTk7XRzEjYShA7by2-ZZkxO9A2q1YWQ_ncAF7aX7UZHCbaryXEyiWynvHX_wC6RHjZCDh_es7SWDTIJt2rkzu89EQm4r2JfZFwbsc3ueB4oEtAGmyfkQFTQXzfnLlTLl0hA-hOI4VNr3bSFtOF-0wYhjnSRGE_J-PphMJ9KsPdR9SrmaOz6LKNCkpBnIjNs9jgC--BYXJQpaR_bT7YheDn_9jX9yyU8tFGOxUpxW4JXku38CLQv3uIvE8U2NXlqGSbQwBAazTeoYDaOlb3ThzTlYhxG0U0dmKnp0=",
	"nuts": 20
}
Response:
{
    "transaction": "RisvhyeM7qmZ4o-VKmHoWMgWHcLrwitFRASBxfpt5A-0mHP_Y6z_D5sCqBrwYAOzOTrr5RfgVjGmqe8BIc-SbeRZE9aTQLkIDFW48rDvfeM2sSCLy1Qt2g3xpGBlprXpxvBJmI0ewfZc1mOdQ_zCXgfOIcKAcXpxgcQWyvnjmhMHEvww2wfQ_cVZ19BfPz8KimeRrzmZKyMDOwNu1KFdYbuDW-pv1aWsj4F8IQfDFG1x6q7IvZ-G7H5kchyqZcEisM5PoAoXx0RoMw3Qw9xKnAWTeU2umrEEJc8yUyfSa46ldIugUeo0kDNO7kmluju9zhqFCgJOOTu5gKH5x1zTIQQe1HhPqrJLVZuBd6SYzM7FZYJYwcR_6-Ympcqxm8W2h4JgbAI-rnBPPdfSyxvKN0r5xzb7p2mGb4ZrIKcFbVniKZ4Aqgaoq5VuciPba-FcEVYIMp8N43U9-eRV_C0OoPytA0HbVFpqYj8VybcYh8RZZ0fcAUGwOGLpIhjpTnd52vyAI_s2p0nHGdjFiDn8JA=="
}

Market


The marketplace can only be reached via GET request. A contract is required to conclude a nut deal. Every nullet in the world has access to the market.


https://api.gudix.net/market
GET

contract string

sell or buy. Default is sell. If you send buy all the contracts are listet which already have buyers and they are looking for sellers. If you have nuts, you can sell it to buyers.


limit integer

maximal 100. Default is 10


currency string


price_min integer


price_max integer


nuts_min integer


nuts_max integer


guarantee_min integer


guarantee_max integer


paymentinfo string

universal search parameter for paymentinformations

Example GET Request with Parameters:

	GET https://api.gudix.net/market?contract=sell&pric_emax=50&limit=3
Response:
[
    {
        "_id": "7f660a46b3d8ae75ecb25987954709650921d3e5d6eaca7e72",
        "contract": "sell",
        "nuts": 550,
        "guarantee": 200,
        "currency": "chf",
        "price": 200,
        "paymentinfo": "ccc"
    },
    {
        "_id": "97aef9f419b44e6e3029c5aaa78ef342bd28df44b53e0225d0",
        "contract": "sell",
        "nuts": 550,
        "guarantee": 200,
        "currency": "chf",
        "price": 200,
        "paymentinfo": "ccc"
    },
    {
        "_id": "c286042b711fb88ca881366ce0dd9649fc9593928d0455f9f6",
        "contract": "sell",
        "nuts": 550,
        "guarantee": 200,
        "currency": "chf",
        "price": 300,
        "paymentinfo": "ccc"
    }
]

Contract


Contracts are created via the market or as a private contract. A contract can be created by a buyer or a seller and can be completed by the opposite side. Complete means the contract has a seller and a buyer. So a buyer can upload his desired contract and has registered his part on the contract as a "buy" part. If the contract conditions appear interesting for a seller, the seller can take his "sale" part on the contract and thus complete the contract. Both parties can receive updates on contracts via separate webhooks.

Guarantee
A contract can be provided with security in the form of guarantee nuts. If guarantee is required, it will be repaid to both parties upon successful completion. Example: A seller wants to sell 100 nuts and he wants to make sure that the buyer pays and places a contract with 100 nuts and for example 50 nuts guarantee. The seller send 150 nuts with POST Request to contract url. The seller can also specify the form in which he would like the 100 nuts to be paid for by a buyer. E.g. he can specify bank transfer or Bitcoin or what he wishes. The money transfer takes place bilaterally between buyer and seller outside the Gudix® Net. The buyer places his "buy" part on the contract and pays in the 50 nuts guarantee. Both parties have now paid 50 nuts as guarantee, which will only be paid back when the seller confirms that he has received the money for the purchase from the buyer.


https://api.gudix.net/contract
GET

:contract_id string

You can see contract ids as _id in market. Add this parameter to url to see contract details.


POST

:contract_id string

if you send contract id in URL, you're about to complete an existing contract and you will not create a new one.


nullet string


password string


view boolean

Actually only view or null is allowed. If you active view mode, no further parameters are necessary. With response you get contract informations. For example you can use it to share a private contract id outside of the market. Holder of contract ids can complete a contract. Combine view mode with nullet and password and if you are contract creator, the response parameter authorized will be added as Response Parameter named seller or buyer.


contract string

Only "sell" or "buy" valid. define the part of you. If you want to sell, you have to send "sell".


nuts integer


guarantee integer or array

if you complete an existing contract, the guarantee must have the same hight defined in the contract. if you creating a new contract you can define a fixed guarantee as integer OR you define in sub array minimum guarantee and percent guarantee check the example right away.


webhook string

define a webhook to get news to your contract. You get news when someone completes a contract or when someone writes something in the channel concerning this contract. In case of using telegram connection you just need to inser telegram and you will get informed in telegram in case of news.


automessage string

you can write here some informations what are automatic postet to channel after completing the contract. For example you can presend paypal informataions if you are a seller and you want to reciever the payment in paypal.


currency string

currency for the price to define. Actually USD, EUR, CHF, YEN, GBP are available.


price integer

price in defined currency per nut in decimal. USD 2.00 for 1 Nut means you have to define price: 200. USD 2.30 means you have to put in 230


paymentinfo string

public informations what is prefered to pay with. Check the market examples. If you are seller and you want to recieve the price for your nuts with paypal, just write paymentinformation "paypal".


private boolean

default is false. When set true, the contract will not by displayed in public market.

Example GET Request with contract id:

	GET https://api.gudix.net/contract/7f660a46b3d8ae75ecb25987954709650921d3e5d6eaca7e72
Response:
{
    "_id": "b70353b5c2093bf50f0d96593f53cec2bf0e18b75094f4621e",
    "contract": "sell",
    "nuts": 550,
    "guarantee": 200,
    "currency": "USD",
    "price": 200,
    "deadline": null,
    "paymentinfo": "ccc",
    "automessage": "Please pay next 2 days. Paypal address is nomail@mail.com",
    "gudix_comment": "you can buy 550 Nuts from this seller. The price is USD 2 per Nut, this makes total USD 1100. Also you have to pay a guarantee 200 Nut(s) in advance. We will payback the guarantee after you pay and after the seller releases the guarantee."
}
Example POST Request to create contract:
{
    "sender": "bgNPuIUVHuOEZF6OyrLlr2b6Hjtxh5KRqc3Rc7fhMUGFIcnnewVr1TS4PQZisy_7krm4061auEtkptVcfVGTd9ogh8902AsgLQfaaciEGqzUGbsC0lznJQL09at9OOkEcqji9M1PUbGHcjFVtGZqpPfPMeDEOJDf1bQFdrTLRoxpNFhlZxZ96u0I7lxufoy0sHCMaqtg",
    "password": "asdfasdf",
    "contract": "buy",
    "nuts": 6000,
    "guarantee": {
    	"minimum": 2,
    	"percent": 3
    	
    },
	"webhook": "https://webhook.site/b945870a-4419-4649-a4f0-4332027869bc",
    "currency": "usd",
	"price": 220,
	"paymentinfo": "paypal, iban"
}
Response:
{
    "contractid": "b70353b5c2093bf50f0d96593f53cec2bf0e18b75094f4621e",
    "channelid": "700de5ce3b2d297ff9cfc267d9098e73aac199b8",
    "transaction": "5xzC7jc5lzp6PQ4D3fd4KafHEyvVubNqA9odAFLOUTnqQ-Kk4zNay4hX05bM3WWOdvmWfKAA8ejVPwGLI7jhyVPCAOGWVaam4PFeq5FkEXZocQZ2m1yGVyowR0ByZRKL-UVfZC1UCicfyi1dkl1dxyZEmTCS77Z6Z0lA4w3Mbks4X2Aj5maPqzMlDyM11Yyqrbtb4DboDP0FcwQiaWeD8yOFlQHcbdtSJhop79Jww3QzPQ7KDTlgLXyhrpS61iExpl2zlbr3av5-UzOoSmarp30vRUgLMJvjCVx4qSovyc1W8U9NSt4rChk2Fd27X4uuW2UiMAFic4aAFg-I4TyMVCpxthBK_bYNQpaZlesCgW3sRgGvNnJhkav1V0pU5otQcYUwJN9gaHHZcOjo-iqIgQoGv4jYRsWWAlI2mO3pdL4Oj_EndVlav76pD4ekaNpjPq-0NcVkUvYpOkwKzUcg1_mwVfvBgxfsqBYNcfGMNLLh2r3UuMYxTFrpzgJVBR1RJPOEwX1MbNNPbZwT7tVImvZpac9tfsk2tkLpQlE6YBtn_s1zmUXZAspE2xUibRwRSixqLmfodGRRs6FCcCnbAXEKCkE-C7Ri1BpOlHtzBm0deWv6GguWg_Itu751iGaGioTc4rEwfH9GMUg="
}
Example POST Request to COMPLETE contract:

	POST https://api.gudix.net/contract/7f660a46b3d8ae75ecb25987954709650921d3e5d6eaca7e72
{
    "sender": "2mB7BmnBp5imJMgIdZEE9KLhgDOCAtDB79mElAwlDHhGW-KAw9EKu8h7Iu0SnuO6zTeWzHJJaOmHOIe1IGeKlE-cef0NQGyWgS1l_iaVfX04oo1KbdCtZsdsgwkfGN4WpJZPQN3ziyUNIfj40Y8UmYhwS-lCdbQgG2BUsEk37bRI_WyYx_aX6BZ9NTOwSgJoTzy4onBU",
    "password": "asdfasdf",
    "contract": "buy",
    "nuts": 355,
	"guarantee": 2,
	"webhook": "https://webhook.site/b945870a-4419-4649-a4f0-4332027869bc",
	"currency": "USD",
	"price": 220
}

Contract list


Get all contracts not released today. You can use this list to get all open channels or to anaylise your open sells or open buys. This request ist limited in 100 per sell and 100 per buy contracts.


https://api.gudix.net/release
POST

nullet string


password string

JSON Body Example:
{
	"nullet": "p48OxschQ6icQzqEkk64B08F23HTxdNl4VV6zxWsTAZ3eUcTzdQaxoZ1CupKk8P7OaZlThC5QL3hVGSYAEhn1UJwb7IwTgYABWeyRSzErDd5pHmtyOmnzPRUf--0hpM1fuVhzhL6NZqmYottoHaSlcf_3oPBQjg91izV-j6reRHq4bsGNj3DbGw3PZkJcRlgG_rn_wpR",
    "password": "asdfasdf"
}
Response:
{
    "sell": [
        {
            "_id": "6ce15fa2e01417109bd83b9d365d80aa3028576f65b0018413",
            "channelid": "466296f611c554c5dca377028e54dbab98d25d4a",
            "contract": "complete",
            "nuts": 550,
            "guarantee": 200,
            "currency": "eur",
            "price": 300,
            "paymentinfo": "paypal"
        },
        {
            "_id": "673982aae48c199a5a489ec35efcce589cb9de1b73aed43b74",
            "channelid": "0aed3eb56ffbd3d9e6f5d979cdb3be3d83af2f4d",
            "contract": "sell",
            "nuts": 550,
            "guarantee": 200,
            "currency": "usd",
            "price": 100,
            "paymentinfo": "bitcoin"
        }
    ],
    "buy": [
        {
            "_id": "c9b1c6adafd941c2780ba4e66a8440f046cd50858e15cff6e2",
            "channelid": "f8e135ec01399d9d983cc738bbb81de55fa6829e",
            "contract": "buy",
            "nuts": 550,
            "guarantee": 200,
            "currency": "eur",
            "price": 70,
            "paymentinfo": "iban"
        }
    ]
}

Channel


Completing the contract will unlock a communication channel through which the parties can communicate anonymously. The payment details or the transfer of money can now be communicated via the channel. It is also possible that the seller uses an external service that automatically places a link in the channel when the corresponding webhook is called up, through which the buyer can pay. The buyer can also set up a webhook to be informed when something is being posted on the channel. The Gudix® Net offers an anonymous exchange of informations, but money transfers take place outside the network. As soon as the seller confirms that he has received the money, the guarantee is returned to the parties and the channel is deleted in a non-traceable manner.


https://api.gudix.net/channel
GET

:channel_id string

Channel id you get from creating or completing contract


POST

nullet string

nullet id from seller or buyer.


user string

any user except seller or buyer


data string

write something in the channel

Example GET Request with channel id:

	GET https://api.gudix.net/channel/700de5ce3b2d297ff9cfc267d9098e73aac199b8
Response:
[
    {
        "unix": 1588420539,
        "source": "buyer",
        "data": "contract created"
    }
]
Example POST Request:
{
	"nullet": "bgNPuIUVHuOEZF6OyrLlr2b6Hjtxh5KRqc3Rc7fhMUGFIcnnewVr1TS4PQZisy_7krm4061auEtkptVcfVGTd9ogh8902AsgLQfaaciEGqzUGbsC0lznJQL09at9OOkEcqji9M1PUbGHcjFVtGZqpPfPMeDEOJDf1bQFdrTLRoxpNFhlZxZ96u0I7lxufoy0sHCMaqtg",
    "data": "hallo"
}
Response:
[
    {
        "unix": 1588420539,
        "source": "buyer",
        "data": "contract created"
    },
    {
        "unix": 1588420780,
        "source": "buyer",
        "data": "hallo"
    }
]

Release contract or appservice invoice


The nut seller or authorized appservice can release contracts after completing a contract with seller and buyer. The seller releases the contract after recieving the return. In case of release the guarantee nuts get back to owners and if set the appfee will bi transacted to the appservice nullet.


https://api.gudix.net/release
POST

nullet string

nullet of app in case of releasing a transaction controled by an app or nullet from the seller in case of realeasing a contract.


password string


contract string

if realeasing a contract after seller recieving the payment from buyer.


invoiceid string

Instead of contract id you can send invoice id to release nuts from gudix appservice nullet.

JSON Body Example releasing a App Transaction:
{
	"nullet": "56ClrhWo61EOpIP6J3mIGuvhUV0xS0LaMvXc_1payxVF7VI929ax9-cvi0an6EBK2Sb6cmIWGPIfkZGQpJOzOivpmw2X7VVm_IR1qMAGFl5AZap-DpaLk-rDH6hvhTu21959gmM8PMwfJiv9Vpegm_lgzcLviBMsWSvTJ2yE5ZBkJPo5P0gAaoYiyswRnCSv-rb8v_Nj",
	"password": "asdfasdf",
	"contract": "clVr7B0OBMRgrlRX8ssIeoopZ7"
}
Response:
{
    "transaction": "r6FKn8GCgs3bUahxTgqdmXgbGYzxnRNXwUfcu8UsGArswXTXnRJlpSJ4LwTVpfOUgU5_Hmc54xVs2BXh38884mp2CDJjqh5FF1Y-bLQMranpNUxeh1B5C63-hp-mkOK4Eiww8sciB0LrqutgETZj8dYZh0dh1clVr7B0OBMRgrlRX8ssIeoopZ7mVqaBGg23N7HOKD3fJgOXaFxOSepQMlUmFkiH3kjEkbXCmYHyPn_h_LvQx1Us7NDnc63J7zdjriG-TCnfxpaakzFzEK8NK1WAoWrv3iCSG3_XVwq3RDRFU2sYffBtM4JC1_uVl7DKsHpMmozoMQ6L6mMJyp7gdzdpmnRPMSTck6ADHfUVlr4fE7CylbkHi8kj9wSDBx6FNR94jEALZsLAP3kg6fQTtjEUcqBDD8_wcW57crRnTc9WA3csLrFSHP03nVk7RiAGcCrZDi-MuHQHJx1QTAS-nlQLBg8AxuGp4tE2UYqCIEJykguqYNiEoKiy15w6kaqVO1fj03RiUF7Wp16tmkX_Be3n5e96E6lOnCDqChRsmJqhC0Cjvs-ZeRtVglCY",
    "feetransaction": "sX69D_6L2JnxvtMOX8iYccfhbG394bvhcel-o-ZeZVSRS-5YqSCEqRL3Huy1slrJbO3tp6BpNi5hw7MzN2FqYDaya-dSPS_HLAfIm_bG9MaHyAi6Q_B198ksHm9IV6t5qziZvjFz1axk0JD1vfSZH6bzUp4VQUQJ5yu2h04QiXt4HEcAMtgufvgw_NMzGj3ZJNAB9dOotp0EFcYipRdhdCat4EPsbt97rxOXgPjkiWo2V3VYo7-jW7GSgsSHiY8MtiO-PGCrVTUrs4x3mnXJo96AQm9XPDSF87zfn21kGJn-Tn1CAAcAQ5MMO_gqsR-ocGX394IyYDhQdyq0I3L055Z1-7_g1V6hoLkDNtB_g6vs5nDPE4XbwWOMogAZwr050jpnCp3NRcyLt5Pndw-4H6hdfuKY_uMbJXBQYQSZRCQ2Kgi8eLlEwzV47Imze7QvMVttddss5sd3flj06uCcT5rrap4xFykWcngkwosErk4aaVK8NRCVk5tOwaqp8g9YQCm9Hj3XCUJxIGR0-_b7EV-XYF6JIpkuBZgJOC-L-x7hHREtAuIn41BEiw=="
}

Cancel contract or appservice invoice


A contract creator can cancel contract before completing a contract with the other part.


https://api.gudix.net/release
POST

nullet string

nullet from sender in case of pending a transaction controled by an app or nullet contract creater.


password string


contract string

if canceling a contract with contract id


invoiceid string

if canceling an third party invoice.

JSON Body Example releasing a App Transaction:
{
	"nullet": "56ClrhWo61EOpIP6J3mIGuvhUV0xS0LaMvXc_1payxVF7VI929ax9-cvi0an6EBK2Sb6cmIWGPIfkZGQpJOzOivpmw2X7VVm_IR1qMAGFl5AZap-DpaLk-rDH6hvhTu21959gmM8PMwfJiv9Vpegm_lgzcLviBMsWSvTJ2yE5ZBkJPo5P0gAaoYiyswRnCSv-rb8v_Nj",
	"password": "asdfasdf",
	"contract": "clVr7B0OBMRgrlRX8ssIeoopZ7"
}
Response:
{
    "result": true
}

Validation


You can validate some encrypted data. For example if the reciever address is valid and also if the reciever address belongs to a nullet.


https://api.gudix.net/reciever
POST

type string

validation


data string

the encrypted code you think it is defined as type. Send the request without any other fields and you get the result if the reciever address is valid.


nullet string

If you want to check if the reciever belongs to an specific nullet, just add another field and put in the nullet id.


password string

In case of nullet check you have to enter the right password.

JSON Body:
{
    "type": "reciever",
    "data": "DhByPA8u7anAeLTAqGMTwYvjbqMoXh4sTAYkAIVgWlC9UEC5jxK2NbTiFCsxlI4YyItbnuubbog8Ul3d-LXOq6IttYavTJtbmLSVGT0ll6H_gI-Rx9Xi-atPtx4uGN2Nc2LfNY97F_do_ndNeejwrmraeqcpVAbH4pNCQxgjZoETj_FRmzc2D22pdfXRG5i82izBxMpFAvYiXZBY-ZPh7tVVAcStoOGA-qu369yYO1a2e785YKbyyFTn24a_BNrA2Xw=",
    "nullet": "edgeK-GP1ThfFjZr3aodXH_zhC3wMfMANEelC7L0lXm_-27u0uKpxXRzCP7rj9ueUY5lfYYxol47Crx1lbLxpaAFqY4v8e69h8VTYnsw3ZbLGoB4bh28CsIpDCGoi4qa3uXmUT1GpimbvlweztIdF8TsZhJg3JV7StfQH6fMS38yxlFJnaH9R0_4AemPAgZVkZV6n9di",
    "password": "rightPassWord"
}
Response:
{
    "result": true
}