For innovators and developers, for growth and freedom.

For innovators and developers, for growth and freedom.

iobit Processor

Would you like to send or accept transactions worldwide via your website or app? We deliver iobits to make any transactions. With second-layer technology, you can communicate encrypted with any device worldwide. That's a bit like asking your fridge via WhatsApp to order new milk.

Peer-2-Peer

All participants communicate in encrypted form via a peer-2-peer network. Each subject has its own neural address.

Internet-of-Everything

The neural network cannot distinguish between man and machine. Neuronet is ideally suited for IoE applications.

API Console

100% secured with Bitcoin. Send credit and data encrypted via the GudixIO API.

No KYC / AML

GudixIO is a neural network, a deep learning algorithm. There are no points of contact with the financial sector.

DDoS and SPAM Protection

Digital depots minimize susceptibility to DDoS and SPAM. Transactions are collateralised.

gudix® API

gudix® API

Introduction and examples of communication over the pay-per-use transaction network.

Intruduction

Gudix is an algorithm that builds and stabilizes a virtual network, the IOBOX network. Gudix can integrate transactions into the IOBOX network via the iobit processor. In the form of a pay-per-use application model, credits are used to communicate with the processor via API. Iobits data packs aka data packs are transferred. A iobit is also a credit. One credit is required to create a datapack. A data pack contains data, credits and program information. Credits are not money, e-money or any other financial means. The price for one credit is CHF 0.01.

iobits

A iobit is a new type of data package, it contains networking information. It is an abstract transaction construct. A digital cryptographic data carrier. Iobit datapacks have a maximum storage volume of 16 MB and are transcribed by the neuroprocessor, cryptographically secured and temporarily stored in the IOBOX Network for retrieval.

16MB Cached Document

A datapack is an encrypted medium and must be transcribed into binary code by a network processor for communication purposes. The processor is controlled via core. A data pack is created for each transaction and connected to a iobit. The data pack can only be read and decrypted by the recipient and has a maximum storage capacity of 16MB. It remains in cache memory until fetched.

JSON Format

The API accepts JSON formatted data Content-Type: application/json and also returns JSON formatted responses. The following examples are illustrated in JSON format.

POST form-data

In addition to the JSON format, the core also accepts pure POST form-data, but always responds in JSON.

Example CURL request

curl -X POST https://core.gudix.io -d method=createKeyPair

API method

in the example above we entered the method with method=createKeyPair and sent it as a POST field via curl. This method can always be used as a URL path and does not necessarily have to be sent as a field.

Example CURL request with method in URL path

curl -X POST https://core.gudix.io/createKeyPair

GET Requests

By entering API methods in the URL path, requests that do not require any additional variables are also possible as GET requests to retrieve content.

Example CURL GET request

curl https://core.gudix.io/createKeyPair

GET requests + parameter

Depending on the method, further parameters can be appended to the path. These are specified below as :parameter. For example, a transaction ID variable might be specified as :transaction_id.

Example GET request with additional parameter :transaction_id

curl https://core.gudix.io/transaction/61dd94aca3eff348a93deb74

HTTPS

Inquiries are only accepted via HTTPS. The API URLs core.gudix.io are to be placed at https://core.gudix.io.

Errors

If a format is malformed or an output error is generated, a 400 status code is returned with a JSON error comment.

Request methods

Only POST and GET requests allowed.

Core Methods

create key pair


A key pair is created. A public key and a secret key are generated. The public key is the address of the depot. The SecretKey is used for authentication.


core.gudix.io/createKeyPair
GET
GET request
GET https://core.gudix.io/createKeyPair
Response:
{
    "public": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164",
    "secret": "31400400eeafafbd52c018af5825838b046c4f78d96328d2fcdf6262e321a4c7f4493808393941d915a42fdfdb482b0c52dee0b81ca1e720a3ebfe37e02226fdf58369d5198141d1b998ba7925391f26f701a0695fb7ab46ff2371ee1a2b066023fe0d27"
}

Depot


iobit credits have a price of 0.01 Swiss Francs per credit. The smallest unit 1 corresponds to one centime. A Swiss franc consists of 100 centimes.


core.gudix.io/depot
POST

address string

public key

rates boolean

Adds the current exchange rate from Euros to Swiss Francs and Euros to US Dollars.

JSON Body:
{
	"address": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164"
}
Response:
{
    "address": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164",
    "credits": 23164,
    "version": 687,
     "rates": {
        "CHF": 1.043676,
        "USD": 1.141611
    }
}

initiate transaction


Datapacks are sent via core to the processor where it is transcribed into a file, validated and signed. The processor checks that the data pack is valid and that the hash calculations are correct. If the data is correct, the processor debits the credits, delivers it to the recipient and claims the transaction fees.

Transaction Lifecycle

  1. Transaction is sent to a pool. The transaction object contains the cipher parameter and is therefore not yet confirmed.
  2. cipher is decrypted and signed by the validator. A new parameter proof is appended to the transaction object and the two depository credit balances are updated.
  3. proof contains symmetrically encrypted data that only the payee can decrypt. Decrypting reveals the TAN, which shows the network that the transaction has been accepted. The release parameter is added to the transaction object, which contains the time of decryption.
  4. The release parameter deletes the transaction 12 hours later from the network in a non-traceable manner.

core.gudix.io/transaction
POST

secret string

private key

address string

Public key of the credit recipient.

credits integer

Credits = price in Swiss francs * 100. Example: 120 Swiss francs are 12,000 credits.

gas integer

amount in credits. Higher amounts of gas accelerate signatures. Gas is always paid for by the station.

currency string

Credit Base Price Currency is CHF (Swiss Francs). CHF, EUR or USD can be used. The network automatically converts the price and gas amount according to current exchange rates and adjusts the credits.

sealing any format

Information that only the recipient of the transaction can read. Sealing information is encrypted symmetrically.

webhook string

Each transaction can have its own URL with user-specific GET parameters such as internal invoice numbers. This is useful for external systems. Gudix sends two POST requests to the webhook URL. The first request with the transaction data upon initiation and the second with the proof, which means the transaction is confirmed. An additional, separate status field is supplied pending proofed

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a",
    "address": "f80068824b5533d5d829ec1073c937fd03c741c3d9353379d049e717a1a82676",
    "credits": 3000,
    "gas": 3,
    "currency": "EUR",
    "webhook": "https://webhook.site/80593c15-200a-4970-b457-f915ca773eb4"
    "sealing": {
        "comment": "This Comment was added manually with sealing parameter"
    },
}
Response:
{
    "id": "61e2e54056c76929491db162",
    "credits": 3131,
    "gas": {
        "credits": -3,
        "hash": "ab7fc30e4be6b85facba4b8c1d67c5ef54c9efc72fe5602db557fb80cb30ec83",
        "auth": "zDrfXxdJdzLfTrjaQwg41eizA46IUpqqBpP6YheZL92ruFOACH5QqO3bwLnnOj_1pAd1GSOE8CAM1YasbmdEAQ=="
    },
    "reward": 3
}

Pool prüfen


Select the box whose documents should be displayed.


core.gudix.io/:box/:address
GET

:box string

box is for all files, inbox for incoming files and outbox for outgoing files.

:address string

box is for all files, inbox for incoming files and outbox for outgoing files.

Example GET Request with Transaction ID:
GET https://core.gudix.io/pool/6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164
Response:
[
    {
        "_id": {
            "$oid": "62846844d309e3383d565a92"
        },
        "from": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164",
        "to": "a68a464f9dbdeef9601e7fcd914a355d93c264dbf43182a796a78fe382e1ba0c",
        "credits": 200,
        "creditsonly": true,
        "proof": "4S2Lv2s_q22Ov1S13nWjbgr1TbPRfDKoOgk6gSdDbir9nJ9tOzpqZCMLCrmrQO4BV4j1d1K6DvKsEN-V48dxOrMcPR3tgz2rp_WSbt_pmBhLqjgCmniahSxjsRhhO2qCIV-LqH6U6u4qXOaVI4nw-DneZ6u2ScVG0n5LBXda7SCNO32gmRs="
    },
    {
        "_id": {
            "$oid": "6284685b78aacb4737611ce2"
        },
        "from": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164",
        "to": "36236cd80ce0551e91e9100e7cca89cd1426888981a4d5dec9352907fb2c072f",
        "credits": 100,
        "creditsonly": true,
        "proof": "m5V03a7tWEGjmW-YCqEbThDlvhMy7acA1soeThh0rG-V-I-74RYADctqskTUipi4n5vcmgAiq5AXKlrPa1ahhVM-oup_5H_n-N9bAE9IynKAWtSOrgpYACtWPAoxxfjETtuy5lnZYMj-CCd8urAWgluZyKEhkUY="
    }
]

get transaction data


The transaction method can be used as a POST and GET request. POST initiates a new transaction, GET pulls a specific transaction from the pool to check its status. The transaction ID is appended in the URL path. A transaction contains the cipher field if it has not yet been signed by the validator. It contains the proof field if the transaction is signed and posted.

Receipt confirmation
While transactions are confirmed and assigned with the proof parameter, without the release parameter, the transaction has not yet been officially received. Only when proof is decrypted is release appended and counts as received.


core.gudix.io/transaction/:id
GET

:id string

Transaction ID obtained with the POST request.

Example GET Request with Transaction ID:
GET https://core.gudix.io/transaction/61de94aca3efe348a83deb74
Response:
{
    "_id": {
        "$oid": "61e2e54056c76929491db162"
    },
    "from": "6caea81df784e6d278ca27e720304e4786bf059e2590daf8cc9305520aad0164",
    "to": "f80068824b5533d5d829ec1073c937fd03c741c3d9353379d049e717a1a82676",
    "gas": {
        "credits": -5,
        "hash": "38efba2b1552bba24290fce4ef6f5cfbe708dd0fd00d759b35570a585d333af8",
        "auth": "3AuF4QkbwQJF804n545NR6dUjjRxcb1e7WUMAZUIMxx1Ii78_JzTE1lzBzMTjuaF4oq6FVs1c1KuEPxca5GsLA=="
    },
    "credits": 100,
    "creditsonly": true,
    "proof" : "Satx3yF0ivQmkxsXAlduLJfLwYwE9xOwWLQlCCCoeVWqTeNyZmJhEo4q171pR-zxJeFC6O2ONpcFvR85VtFvRua1WSkOfmm_Qx_hLprl1Q==",
	"release" : ISODate("2022-01-16T07:38:02.366Z")

}

decrypt transaction data


A transaction signed by a validator contains encrypted data, this data can be decrypted using the recipient's SecretKey. This will add a release parameter to the transaction and 12 hours later it will be deleted from the pool. The proof parameter is the encrypted string that needs to be decrypted.


core.gudix.io/unseal
POST

secret string

private key

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a",
    "seal": "Satx3yF0ivQmkxsXAlduLJfLwYwE9xOwWLQlCCCoeVWqTeNyZmJhEo4q171pR-zxJeFC6O2ONpcFvR85VtFvRua1WSkOfmm_Qx_hLprl1Q=="
}
Response:
{
    "unsealed": {
        "comment": "This Comment was added manually with sealing parameter"
    }
}

bitcoin deposit


A bitcoin address is assigned to a depot to which any bitcoin can be sent. Once bitcoin has been deposited, after 3 confirmed blocks, the network will be activated and iobits will be generated.


core.gudix.io/btcdeposit
POST

secret string

private key

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a"
}
Response:
{
    "result": "bc1q4d83ggc6n06q4q9gm5qy25ft4w84pxppffjlz8"
}

realease Bitcoin


Proof-of-work in the form of bitcoin is extracted from the IOBOX Network and transferred to a bitcoin wallet of your choice. The connected iobits are devalued. The depreciation is 4% productive value.


core.gudix.io/release
POST

secret string

private key

btcaddress string

Bitcoin recipient address

credits int

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a",
    "credits": 10000
}
Response:
{
    "result": true
}

iobit Deposit


iobits are calculated and generated using a deep learning algorithm. With a deposit, more iobits can be generated in a shorter time. The algorithm returns the deposit based on success.


core.gudix.io/neuropay
POST

secret string

private key

credits integer

Amount as iobit price to be deposited

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a",
    "credits": 12000
}
Response:
Status Code 200

Private Terminal

Private iobit transactions are settled via virtual terminals. A virtual terminal is initiated and transferred to the transaction partner's device via a link or QR code. This opens the link and completes the transaction or transfers the iobits and the content of the data pack.

create terminal


Creating a terminal is similar to the initTransaction method. No transaction is initiated, but prepared. The data is cached. When the transaction partner then takes over the terminal, the relevant information is added and the transaction is initiated.


core.gudix.io/terminal
POST

secret string

private key

action string

Indicates whether the initiator wants to send or receive iobit credits.

get send

amount integer

Instead of the credits parameter, the amount parameter is used.

gas integer

amount in credits. Higher amounts of gas accelerate signatures. Gas is always paid for by the sender. The transaction partner can adjust the gas amount under certain circumstances.

currency string

Credit Base Price Currency is CHF (Swiss Francs). CHF, EUR or USD can be used. The network automatically converts the price and gas amount according to current exchange rates and adjusts the credits.

webhook string

see Initiate transaction

ask string

Asks the transaction partner for postal address, email address and telephone number. The data does not have to be specified, the transaction partner can deactivate the data. This field is a string. If postal is included in the string, it will ask for the postal address. If mail is included, it will ask for the mail address. The same if phone is included for the phone number.

add JSON

Data of the initiator are appended. The data must be sent with each new terminal initiation. Whether as form-data or within the JSON body, this parameter should always be sent in JSON format.

comment string

The comment field can be used for user-specific data. If left blank, the transaction partner can add their own comment.

JSON Body:
{
    "secret": "3140040004f6a28e6829e9029401c0c978425a70d1e452a6ec3573f5a5aa42b6e415a45de0d1208cd5f5c9c5cd14e505126e0b5e1ebd2f21ed6290375b378ab165f8fc4d51a7233665588d34b25b43e9ada48e553f197e8952bdafc00a382abf83c4603a",
    "address": "f80068824b5533d5d829ec1073c937fd03c741c3d9353379d049e717a1a82676",
    "credits": 3000,
    "gas": 3,
    "currency": "EUR",
    "webhook": "https://webhook.site/80593c15-200a-4970-b457-f915ca773eb4",
    "ask": "postal, mail",
    "add": {
        "postal": {
            "firstname": "Peter",
            "lastname": "Pan",
            "street": "Tree House 13",
            "zip": "01014",
            "city": "Nocity",
            "country": "Neverland"
        },
        "mail": "peter.pan@neverland.com",
        "phone": "+4933448939222"
    },
    "comment": "invoice #0033342"
}
Response:
{
    "terminal": "eyJhbW91bnQiOjEwMDAsImdhcyI6MTAwMCwiY3VycmVuY3kiOiJFVVIiLCJyYW5kb20iOiJLSGNtLXRuYU9LSEJLM2NWZi14cXJrbCJ9",
    "url": "https://gudix.io?terminal=eyJhbW91bnQiOjEwMDAsImdhcyI6MTAwMCwiY3VycmVuY3kiOiJFVVIiLCJyYW5kb20iOiJLSGNtLXRuYU9LSEJLM2NWZi14cXJrbCJ9",
    "qr": "https://qr.gudix.io?data=https://gudix.io?terminal=eyJhbW91bnQiOjEwMDAsImdhcyI6MTAwMCwiY3VycmVuY3kiOiJFVVIiLCJyYW5kb20iOiJLSGNtLXRuYU9LSEJLM2NWZi14cXJrbCJ9"
}

The supplied qr parameter is a URL to the QR generator and can be displayed to the transaction partner as an image. The transaction partner scans the QR code like a link. The URL hidden behind the QR code is supplied separately as a url parameter and can also be used to grant the transaction partner access to the virtual terminal.

Very simple QR codes are used to send credits. This can be used to set up payment terminals.

After the transaction partner opens the virtual terminal on their personal device and confirms the transaction. The transaction is initiated. The credit recipient receives the encrypted data via the proof parameter. See Transaction Lifecycle under Initiate Transaction. The proof string must be unsealed using the unseal method. See Decrypt transaction data

The credit sender has to request and decrypt the data that it requested via the ask parameter in a different way:

bubble data


Bubbles are data bubbles that are inflated with data and eventually burst. A bubble is used to make data temporarily available in addition to the standard processes. For example, the requested data entered by the credit recipient via the terminal. If data was encrypted, it is encrypted in the blow string. The blow parameter can be decrypted together with unseal method. See Decrypt transaction data


core.gudix.io/bubble/:id
GET

:id string

Can be used universally. In this example, the transaction ID is used.

Example GET Request with Transaction ID:
GET https://core.gudix.io/bubble/61dd94aca3eff348a93deb74
Response:
{
    "id": "61dd94aca3eff348a93deb74",
    "blow": "MUIEAOd9zMHAY_1dLCM8jWTJedNdzhi3HSDXOQ3vga-uDkT7jOeue7bMZv1zB7jsVkQ4uSTq4remYWKXyzwYA4U6VAEPYJPLqTeiM2Bw_6UwtVV6h6xQg_h6ej5e_fOWaWg_wEXNJeW2R2a0FF4dINQ9hIyPOBzzXSihkyD5kKDajd_d97ZruQI5kAoQ3LfUJsyQif4hmB2S4EolSNubqrAN-90q019H"
}