# Tangle-Accelerator Core API ### Architecture ![https://i.imgur.com/of48w4w.png](https://i.imgur.com/of48w4w.png) Resource: `Address`, `Transaction`, `Bundle`, `Tag`, `Tips` For `POST`, `PATCH`, `PUT`, and `DELETE` requests, parameters not included in the URL should be encoded as JSON with a Content-Type of `application/json:` ## Errors ### Client Bad Request #### Response ``` Status: 400 Bad Request ``` ```json= { "message": "Invalid path" } ``` ### Resource Not Found #### Response ```json= Status: 404 Not found Location: https://localhost/transaction/QXYDRDCFUFQJUCZXJXZKLCSSOLCWUSTJU9GEMITMHFPM9WYZGQXTENAYMCRX99ID9IAJNZICORHYA9999 ``` ```json { "message": "Transaction Not Found" } ``` ==We return null message for now== #### Reference * [Client Errors | GitHub API v3](https://developer.github.com/v3/#client-errors) ## Address ### Get New Addresses ``` GET /address ``` #### Response ```json= { "address": ["TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999"] } ``` ## Transaction ### Fetch Transaction Information ``` GET /transaction/<transaction hash> ``` #### Response ``` Status: 200 OK Location: https://localhost/transaction/TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999 ``` ```json= { "hash": "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "signature_message_fragment": "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "address": "BNLEIEZKULDXRIIJLDUOQAWZFHU9BHPHIQZWVUYJF9XPSVDDQWV9KKKKMUYLBXSZZZOTVPIUVOLSGMSQZKENBJH9DB", "value": 2, "obsoleteTag": "", "timestamp": 1546436542, "current_index": 0, "last_index": 2, "bundle_hash": "MEWNHACVJNEUEGSEDUYRZSKUIWCYQIEFDGSJBIABBNVCZBSXGIXVIAOSRLDYYQLDSBIABUSHCHQYSZHBY", "trunk_transaction_hash": "9UCGMOKCVXNZQOARKHMEH9YLXMTRMIWOTWSXSQOTHGCJNTFJLEZBFFAW9QLWCYAGCLPORDBTAAEUA9999", "branch_transaction_hash": "QUTHNIURTHVHHJYMRBDSZSQFMFTPBARGHH9SAUHTCGWWQYHVWBXNUJVRXCBWRLFFEDBZDIPUDUAQA9999" "tag": "TANGLE9BEAT9999999999999999", "attachment_timestamp": 1546436542, "attachment_timestamp_lower_bound": 1546436542, "attachment_timestamp_upper_bound": 1546436542 "nonce": "POWSRVIO9GD99999OGTNGPMMMMM" } ``` #### Reference * [Transaction | PyOTA](https://pyota.readthedocs.io/en/latest/types.html#transaction) * [Transaction | iotaledger/iota.js](https://github.com/iotaledger/iota.js/blob/next/packages/transaction-converter/src/index.ts) * [Transaction | iotaledger/entangled](https://github.com/iotaledger/entangled/blob/develop/common/model/transaction.h) * [Transaction Sample | theTangle.org](https://thetangle.org/transaction/QXYDRDCFUFQJUCZXJXZKLCSSOLCWUSTJU9GEMITMHFPM9WYZGQXTENAYMCRX99ID9IAJNZICORHYA9999) ### Create Transaction ``` POST /transaction ``` #### Input | Name | Type | Description | | --------------- | ------- | ----------------------------------------------------------------------------------------------------------------- | | message | string | A message of the transaction. | | is_utf8_message | boolean | Either `true` to encode the message from UTF-8 string or `false` encode the message from ASCII. Default: `false` | #### Response ``` Status: 201 Created Location: https://localhost/transaction ``` ```json= { "hash": "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "signature_message_fragment": "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "address": "BNLEIEZKULDXRIIJLDUOQAWZFHU9BHPHIQZWVUYJF9XPSVDDQWV9KKKKMUYLBXSZZZOTVPIUVOLSGMSQZKENBJH9DB", "value": 2, "obsoleteTag": "", "timestamp": 1546436542, "current_index": 0, "last_index": 2, "bundle_hash": "MEWNHACVJNEUEGSEDUYRZSKUIWCYQIEFDGSJBIABBNVCZBSXGIXVIAOSRLDYYQLDSBIABUSHCHQYSZHBY", "trunk_transaction_hash": "9UCGMOKCVXNZQOARKHMEH9YLXMTRMIWOTWSXSQOTHGCJNTFJLEZBFFAW9QLWCYAGCLPORDBTAAEUA9999", "branch_transaction_hash": "QUTHNIURTHVHHJYMRBDSZSQFMFTPBARGHH9SAUHTCGWWQYHVWBXNUJVRXCBWRLFFEDBZDIPUDUAQA9999" "tag": "TANGLE9BEAT9999999999999999", "attachment_timestamp": 1546436542, "attachment_timestamp_lower_bound": 1546436542, "attachment_timestamp_upper_bound": 1546436542 "nonce": "POWSRVIO9GD99999OGTNGPMMMMM" } ``` ==How to encode the UTF-8 string into Trytes?== - Candidates: - [Tryte-UTF8-JSON-Codec/codec.js at master ยท pRizz/Tryte-UTF8-JSON-Codec](https://github.com/pRizz/Tryte-UTF8-JSON-Codec/blob/master/lib/codec.js) - [trytes - npm](https://www.npmjs.com/package/trytes) ## Bundle ### Fetch Bundle Transactions ``` GET /bundle/<bundle hash> ``` #### Response ``` Status: 200 OK Location: https://localhost/bundle/MEWNHACVJNEUEGSEDUYRZSKUIWCYQIEFDGSJBIABBNVCZBSXGIXVIAOSRLDYYQLDSBIABUSHCHQYSZHBY ``` ```json= [ { "hash": "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "signature_message_fragment": "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "address": "BNLEIEZKULDXRIIJLDUOQAWZFHU9BHPHIQZWVUYJF9XPSVDDQWV9KKKKMUYLBXSZZZOTVPIUVOLSGMSQZKENBJH9DB", "value": 2, "obsoleteTag": "", "timestamp": 1546436542, ... }, { "hash": "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "signature_message_fragment": "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "address": "BNLEIEZKULDXRIIJLDUOQAWZFHU9BHPHIQZWVUYJF9XPSVDDQWV9KKKKMUYLBXSZZZOTVPIUVOLSGMSQZKENBJH9DB", "value": 2, "obsoleteTag": "", "timestamp": 1546436542, ... }, ... ] ``` #### Reference * [Bundle | iotaledger/iota.js](https://github.com/iotaledger/iota.js/blob/next/packages/types.ts) * [BundleEntry | iotaledger/iota.js](https://github.com/iotaledger/iota.js/blob/next/packages/bundle/src/index.ts) * [Bundle Sample | TheTangle.org](https://thetangle.org/bundle/MEWNHACVJNEUEGSEDUYRZSKUIWCYQIEFDGSJBIABBNVCZBSXGIXVIAOSRLDYYQLDSBIABUSHCHQYSZHBY) ### Fetch Bundle Transaction Hashes ``` GET /bundle/<bundle hash>/hashes ``` #### Response ``` Status: 200 OK Location: https://localhost/bundle/MEWNHACVJNEUEGSEDUYRZSKUIWCYQIEFDGSJBIABBNVCZBSXGIXVIAOSRLDYYQLDSBIABUSHCHQYSZHBY/hashes ``` ```json= [ "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "9UCGMOKCVXNZQOARKHMEH9YLXMTRMIWOTWSXSQOTHGCJNTFJLEZBFFAW9QLWCYAGCLPORDBTAAEUA9999", "CFJITMBJXDGTOGJNRKEJTTOGCCPB9AMKOPZZONKAXYUWOEPAGRAWAPQYJIHWZI9KYWZHZOZCVCPZ99999" ] ``` ## Tag ### Fetch Tag Transactions ``` GET /tag/<tag hash> ``` ==Fetch transaction hashes only? or transaction information== #### Response ```json= [ { } ] ``` --- ## Tips ### Fetch Pair Tips Based on `GetTransactionToApproved` * ~~Includes: Mode 0(GetTransactionToApproved) and Mode 1(Empty Transaction)~~ ``` GET /tips/pair ``` #### Response ``` Status: 200 OK Location: https://localhost/tips/pair ``` ```json= { "tips": [ "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "CFJITMBJXDGTOGJNRKEJTTOGCCPB9AMKOPZZONKAXYUWOEPAGRAWAPQYJIHWZI9KYWZHZOZCVCPZ99999" ] } ``` ### Fetch All Tips Return tips list from fullnode ``` GET /tips ``` #### Response ``` Status: 200 OK Location: https://localhost/tips ``` ```json= { "tips": [ "TGYNOYSQBEXICMVAMLJSBBKUCWNMVLRLLBGYLAAIJSFIMEGAOGRXTMILPOXNYMWAL9XTONTO9BOOA9999", "9UCGMOKCVXNZQOARKHMEH9YLXMTRMIWOTWSXSQOTHGCJNTFJLEZBFFAW9QLWCYAGCLPORDBTAAEUA9999", "CFJITMBJXDGTOGJNRKEJTTOGCCPB9AMKOPZZONKAXYUWOEPAGRAWAPQYJIHWZI9KYWZHZOZCVCPZ99999" ] } ```