Awesome
graphsense-python
GraphSense API provides programmatic access to various ledgers' addresses, entities, blocks, transactions and tags for automated and highly efficient forensics tasks.
This Python package is automatically generated by the OpenAPI Generator project:
- API version: 1.6.0
- Package version: 1.6.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
Requirements.
Python >= 3.6
Installation & Usage
pip install
You can install graphsense-python via pypi using:
pip install graphsense-python
Then import the package:
import graphsense
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install
to install the package for all users)
Then import the package:
import graphsense
Getting Started
Please follow the installation procedure and then run the following:
import time
import graphsense
from pprint import pprint
from graphsense.api import addresses_api
from graphsense.model.address import Address
from graphsense.model.address_tags import AddressTags
from graphsense.model.address_txs import AddressTxs
from graphsense.model.entity import Entity
from graphsense.model.height import Height
from graphsense.model.links import Links
from graphsense.model.neighbor_addresses import NeighborAddresses
# Defining the host is optional and defaults to https://api.ikna.io
# See configuration.py for a list of all supported configuration parameters.
configuration = graphsense.Configuration(
host = "https://api.ikna.io"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: api_key
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'
# Enter a context with an instance of the API client
with graphsense.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = addresses_api.AddressesApi(api_client)
currency = "btc" # str | The cryptocurrency code (e.g., btc)
address = "addressA" # str | The cryptocurrency address
try:
# Get an address
api_response = api_instance.get_address(currency, address)
pprint(api_response)
except graphsense.ApiException as e:
print("Exception when calling AddressesApi->get_address: %s\n" % e)
Documentation for API Endpoints
All URIs are relative to https://api.ikna.io
Class | Method | HTTP request | Description |
---|---|---|---|
AddressesApi | get_address | GET /{currency}/addresses/{address} | Get an address |
AddressesApi | get_address_entity | GET /{currency}/addresses/{address}/entity | Get the entity of an address |
AddressesApi | list_address_links | GET /{currency}/addresses/{address}/links | Get outgoing transactions between two addresses |
AddressesApi | list_address_neighbors | GET /{currency}/addresses/{address}/neighbors | Get an address's neighbors in the address graph |
AddressesApi | list_address_txs | GET /{currency}/addresses/{address}/txs | Get all transactions an address has been involved in |
AddressesApi | list_tags_by_address | GET /{currency}/addresses/{address}/tags | Get attribution tags for a given address |
BlocksApi | get_block | GET /{currency}/blocks/{height} | Get a block by its height |
BlocksApi | list_block_txs | GET /{currency}/blocks/{height}/txs | Get block transactions |
BulkApi | bulk_csv | POST /{currency}/bulk.csv/{operation} | Get data as CSV in bulk |
BulkApi | bulk_json | POST /{currency}/bulk.json/{operation} | Get data as JSON in bulk |
EntitiesApi | get_entity | GET /{currency}/entities/{entity} | Get an entity |
EntitiesApi | list_address_tags_by_entity | GET /{currency}/entities/{entity}/tags | Get address tags for a given entity |
EntitiesApi | list_entity_addresses | GET /{currency}/entities/{entity}/addresses | Get an entity's addresses |
EntitiesApi | list_entity_links | GET /{currency}/entities/{entity}/links | Get transactions between two entities |
EntitiesApi | list_entity_neighbors | GET /{currency}/entities/{entity}/neighbors | Get an entity's direct neighbors |
EntitiesApi | list_entity_txs | GET /{currency}/entities/{entity}/txs | Get all transactions an entity has been involved in |
EntitiesApi | search_entity_neighbors | GET /{currency}/entities/{entity}/search | Search deeply for matching neighbors |
GeneralApi | get_statistics | GET /stats | Get statistics of supported currencies |
GeneralApi | search | GET /search | Returns matching addresses, transactions and labels |
RatesApi | get_exchange_rates | GET /{currency}/rates/{height} | Returns exchange rate for a given height |
TagsApi | get_actor | GET /tags/actors/{actor} | Returns an actor given its unique id or (unique) label |
TagsApi | get_actor_tags | GET /tags/actors/{actor}/tags | Returns the address tags for a given actor |
TagsApi | list_address_tags | GET /tags | Returns address tags associated with a given label |
TagsApi | list_concepts | GET /tags/taxonomies/{taxonomy}/concepts | Returns the supported concepts of a taxonomy |
TagsApi | list_taxonomies | GET /tags/taxonomies | Returns the supported taxonomies |
TokensApi | list_supported_tokens | GET /{currency}/supported_tokens | Returns a list of supported token (sub)currencies |
TxsApi | get_spending_txs | GET /{currency}/txs/{tx_hash}/spending | Returns in which other transaction's outputs the asked transaction spent. Think backwards references is the transaction graph. This endpoint is only available for utxo like currencies. |
TxsApi | get_spent_in_txs | GET /{currency}/txs/{tx_hash}/spent_in | Returns in which other transactions, outputs from the asked transaction are spent. Think forward references in the transaction graph. This endpoint is only available for utxo like currencies. |
TxsApi | get_tx | GET /{currency}/txs/{tx_hash} | Returns details of a specific transaction identified by its hash |
TxsApi | get_tx_io | GET /{currency}/txs/{tx_hash}/{io} | Returns input/output values of a specific transaction identified by its hash |
TxsApi | list_token_txs | GET /{currency}/token_txs/{tx_hash} | Returns all token transactions in a given transaction |
Documentation For Models
- Actor
- ActorContext
- Actors
- Address
- AddressTag
- AddressTagAllOf
- AddressTags
- AddressTx
- AddressTxUtxo
- AddressTxs
- Block
- Concept
- CurrencyStats
- Entity
- EntityAddresses
- Height
- LabeledItemRef
- LabeledItemRefs
- Link
- LinkUtxo
- Links
- NeighborAddress
- NeighborAddresses
- NeighborEntities
- NeighborEntity
- Rate
- Rates
- SearchResult
- SearchResultByCurrency
- SearchResultLabels
- SearchResultLeaf
- SearchResultLevel1
- SearchResultLevel2
- SearchResultLevel3
- SearchResultLevel4
- SearchResultLevel5
- SearchResultLevel6
- Stats
- Tag
- Taxonomy
- TokenConfig
- TokenConfigs
- TokenValues
- Tx
- TxAccount
- TxRef
- TxSummary
- TxUtxo
- TxValue
- TxValues
- TxsAccount
- Values
Documentation For Authorization
api_key
- Type: API key
- API key parameter name: Authorization
- Location: HTTP header
Examples
In ./examples
you can find example Python scripts and Jupyter notebooks demonstrating how to use the GraphSense Python API. Please Follow these setup instructions to run them:
Setup a Python environment with Anaconda:
conda env create -f environment.yml
conda activate graphsense-python
Copy the config temp file and enter your Iknaio API key
cp config.json.tmp config.json
vi config.json
Run the jupyter notebooks
jupyter notebook
Generation from OpenAPI specification
This python package has been generated from Graphsense's OpenAPI specification hosted by Iknaio Cryptoasset Analytics GmbH using this command:
make GS_REST_SERVICE_URL="https://api.ikna.io" generate-openapi-client