Links

Previous versions (not supported)

Out of date, not supported

v0.8

New Features:

  • Now most of the TEOS API functionality is available with TEOS API key. Swagger clearly states which endpoints can't be called using TEOS API key.
    The list of the endpoints which still can be called only with user token are:
    • GET /odata/v0.8/Assets/My
    • GET /odata/v0.8/Balances/My
    • GET /odata/v0.8/Transactions/My
    • GET /odata/v0.8/Wallets/My
    • DELETE /odata/v0.8/Users({key})
    • POST /odata/v0.8/Wallets/InitWalletRegistration
  • In order to introduce the support of api key for creating and signing transactions following changes were done:
    • when transaction is posted, the SigningParameters are returned
    • an endpoint to get SigningParamters is introduced: GET /odata/v0.8/Transactions({key})/GetSigningParameters
    • check for the address ownership is removed for all endpoints except for the ones mentioned in the list of calling with user token
    • an endpoint to submit a signed transaction: POST /odata/v0.8/Transactions/{key}/Submit
  • New endpoint is added to add the wallet to TEOS to have the possibility to use it afterwards POST /odata/v0.8/Wallets
  • New endpoint is added to retrieve transactions with TEOS API key. Don't forget to use odata technology to filter the list according to your business case needs GET /odata/v0.8/Transactions
  • We created methods which have the logic for filtering corresponding data by user (they end with .../My), thus they can be used with user token only
    • GET /odata/v0.8/Assets/My
    • GET /odata/v0.8/Balances/My
    • GET /odata/v0.8/Transactions/My
    • GET /odata/v0.8/Wallets/My

Changes:

  • 👉
    Signing flow with user token is changed according to the description in flow-with-user-token
  • 👉
    POST /odata/v0.8/Assets: the posted transaction is returned instead of asset
  • Asset object was changed:
    • section "Translations" was added. Now asset data can be retrieved with translations. Don't forget to use odata technology to filter the list of languages when retrieving asset data according to your business case
    • new parameter "createdInTeosOn" was introduced - date of asset creation in TEOS, defined when asset is created in TEOS and never changes afterwards
    • 👉
      parameter "createdOn" was changed to "createdInBlockchainOn - date of asset creation in blockchain (block date), at first is NULL, defined when asset is created in blockchain and never changes afterwards
    • 👉
      parameter "updatedOn" was changed to "amendedInBlockchainOn" - date of asset amendment writing to blockchain, at first is NULL, only if amendment is added and written to blockchain this property is filled
  • 👉
    Transaction model is changed
    • The type of the property TypeId is changed from int to enum TransactionType
    • Following properties are removed:
Guid? EntityId { get; set; }
string EntityCLId { get; set; }
AssetId? RelatedCLAssetId { get; set; }
int? RelatedCLLedgerId { get; set; }
string RelatedCLControllerAddressId { get; set; }
Guid? RelatedTxId { get; set; }
bool IsFake { get; set; }
bool IsHiddenNotifications { get; set; }
string Keywords { get; set; }
string MessageTemplate { get; set; }
string GasPrice { get; set; }
string GasUsed { get; set; }
  • The transaction metadata has now property UniqueAssetId when it is created in TEOS API
  • 👉
    GET /odata/v0.8/Wallets GET /odata/v0.8/Wallets/My these endpoints use forced pagination, each page has a maximum size of 50 lines
  • GET /odata/v0.8/Balances/GetAssetsBalances(addresses={addresses},uniqueAssetIds={uniqueAssetIds}) was added to get array of addresses and uniqueAssetIds as request parameters
  • 👉
    GET Balances was renamed to GET Balances/My
Breaking changes:
  • Signing flow with user token is changed according to the description in flow-with-user-token
  • POST /odata/v0.8/Assets: the posted transaction is returned instead of Asset
  • Asset model was changed: parameter "createdOn" was changed to "createdInBlockchainOn", parameter "updatedOn" was changed to "amendedInBlockchainOn" (check their description above)
  • Transaction model was changed (check the changes above)
  • GET /odata/v0.8/Wallets use forced pagination, each page has a maximum size of 50 lines, this is a change relevant for all versions
  • GET Balances was renamed to GET Balances/My

Fixed bugs:

  • We eliminated the performance problem with assets retrieval. Now GET /odata/v0.8/Assets and GET /odata/v0.8/Assets/My work faster

v0.7

New Features:

  • Attribute entities and their endpoints are introduced:
    • Country
    • Currency
    • Unit
    • Language
    • Asset Class
    • Asset Detail Class
    • Search Property
  • Asset of type 'currency' (cash and cash equivalent) can be created with currencyCode parameter instead of unitOfMeasureCode. Check the rules of CurrencyCode definition
  • Invoice state changes events are delivered. More details here
  • Method to retrieve ETH balances of addresses
  • Method to retrieve external wallets saved in WLM

Changes:

  • All responses with asset data contain uniqueAssetId in hex format, now with leading 0x
  • Asset entity structure is changed, to reflect referenced attribute entities
  • CreateUnits, DestroyUnits, TransferUnits methods have "type" parameter as part of the response. Starting from v0.7 value of this parameter is case-sensitive and must start with capital letter, i.e. "type": "Sparks"
  • Routing keys of all events produced by TEOS API have prefix tenant-id which is taken from claims of authentication token
Breaking changes:
  • UniqueAssetId values are now prefixed with "0x"
  • Asset properties are renamed
    • Language -> LanguageCode
    • Jurisdiction -> JurisdictionCode
    • UnitOfMeasure -> UnitOfMeasureCode
    • Currency -> CurrencyCode
    • AssetClass -> AssetClassCode
  • CreateUnits, DestroyUnits, TransferUnits methods have "type" parameter as part of the response. Starting from v0.7 value of this parameter is case-sensitive and must start with capital letter, i.e. "type": "Sparks"

Fixed Bugs:

  • Teosapi wallets/InitWalletRegistration throws 500 when called with api key

v0.6

New Features:

  • New concept "Invoices" is introduced. Concept description can be found here. Functionality introduced:
    • Create invoice
    • Retrieve invoice details
    • Cancel invoice
    • Pay invoice

Changes:

  • Link assets updated: check whether asset exists is removed

Fixed Bugs:

  • SparkOperation method getting 500 error for specific addresses
  • Transfer units - Missleading error message
  • Incorrect message for Transfer/Destroy units in the Transaction method
  • GET Methods return incorrect Time or no Timezone

v0.5

New Features:

  • User data deletion from WLM and TEOS API
  • New endpoint for connecting to RabbitMQ with TLS encryption
Existing RabbitMQ connection endpoints without TLS encryption will be removed when TEOS API v0.4 support is over

Changes:

  • OData standard is enforced more in the area of function parameters and custom types
    • UniqueAssetId, Address and AssetId type constants should be obligatory in single quotes now, e.g. '0x094b3c71f99d3eccc5c3c0001'
    • Resource path should be composed, using entity key in parenthesis, e.g. /assets('0x094b3c71f99d3eccc5c3c0001')
Deprecated: The asset referencing using "resource/key" style

v0.4

New Features:

  • Retrieve transactions
    • GET /transactions - transaction retrieval request with filter possibility
  • Retrieve Spark Operations
    • POST /sparkoperations/search - initiates a search for spark operations

v0.3

New Features:

  • Balances
    • GET /balances(Address='xxx',UniqueAssetId='yyy') - return a balance for specific address-asset combination without restriction per tenant/user. xxx - valid address hex representation (case-insensitive, with or without 0x prefix), yyy - valid unique asset id hex representation (case-insensitive)
  • Warps
    • POST /warps/search - initiates a warp-search
    • POST /warps/execute - executes a warp
    • POST /assets('{key}')/linkasset - links an asset
  • TEOS Events through RabbitMQ
  • Link Assets

v0.2

New Features:

  • Assets
    • POST /assets('{key}')/createunits - creates asset units (sparks)
    • POST /assets('{key}')/transferunits - transfers sparks between two addresses
    • POST /assets('{key}')/destroyunits - destroys sparks for an asset
  • Balances
    • GET /balances - get balances of all own wallets

Changes:

  • Parameter validation and error handling are significantly improved
  • Unbound action "DocumentDbRecord" now is a bound function on assets entity set
  • Unbound action "Search" now is a bound function on assets entity set and is a GET function that accepts search parameters
  • Asset structure is changed
    • Mandatory 'Data' and optional documentation fields are removed
    • new mandatory and optional fields are added
    • Added a possibility to define custom item definitions and their values

v0.1

This is CoreLedger's first new API, intended to consolidate all existing functionalities and microservices and provide standartized consistent way to use them. Provides MVP functions with limited parametrization possibilities.

Features

  • Wallets
    • GET /wallets - returns all signable wallets of the current user or signable wallets of all users, if the token is the api key
    • GET /wallets/{key} - returns specific wallet information
    • DELETE /wallets/{key} - deletes specific wallet
    • POST /InitWalletRegistration - initiates signable address creation and linking with tx server provider
  • Assets
    • GET /assets - returns all assets of the current user, where one of the current user signable addresses is issuer of an asset. Or it returns assets of all users, if the token is the api key, by matching user signable addresses to asset issuer.
    • GET /assets/{key} - returns specific asset information
    • POST /assets (Body: Asset) - creates an asset creation transaction. Asset object in the body describes essential fields, like Name or Issuer. Multiple other document fields are hardcoded in this version of API
    • GET /DocumentDbRecord/{assetId} - returns asset details in json format
    • POST /search (Body: AssetSearchInput) - searches for assets using issuer address or asset name and returns list of found assets
  • Transactions
    • GET /transactions/{key} - returns specific transaction information
  • System
    • GET /version - returns current api version