vbase-api 0.1.1__tar.gz → 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vbase_api-0.1.3/MANIFEST.in +1 -0
- vbase_api-0.1.3/PKG-INFO +84 -0
- vbase_api-0.1.3/README.md +66 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/pyproject.toml +35 -36
- vbase_api-0.1.3/requirements.in +1 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api/__init__.py +2 -0
- vbase_api-0.1.3/src/vbase_api/_version.py +1 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api/vbase_api_client.py +61 -41
- vbase_api-0.1.3/src/vbase_api.egg-info/PKG-INFO +84 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api.egg-info/SOURCES.txt +5 -1
- vbase_api-0.1.3/src/vbase_api.egg-info/requires.txt +1 -0
- vbase_api-0.1.3/tests/test_file_integrity_e2e.py +355 -0
- vbase_api-0.1.1/PKG-INFO +0 -333
- vbase_api-0.1.1/README.md +0 -315
- vbase_api-0.1.1/src/vbase_api.egg-info/PKG-INFO +0 -333
- vbase_api-0.1.1/src/vbase_api.egg-info/requires.txt +0 -1
- {vbase_api-0.1.1 → vbase_api-0.1.3}/LICENSE.txt +0 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/NOTICE.txt +0 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/setup.cfg +0 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api/vbase_api_models.py +0 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api.egg-info/dependency_links.txt +0 -0
- {vbase_api-0.1.1 → vbase_api-0.1.3}/src/vbase_api.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include requirements.in
|
vbase_api-0.1.3/PKG-INFO
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vbase-api
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: vBase REST API Python Client
|
|
5
|
+
Author-email: vBase <tech@vbase.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/validityBase/vbase-api-py
|
|
8
|
+
Project-URL: Documentation, https://docs.vbase.com/
|
|
9
|
+
Keywords: vbase,stamping,web3,blockchain,validation
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE.txt
|
|
15
|
+
License-File: NOTICE.txt
|
|
16
|
+
Requires-Dist: requests<3,>=2.7.0
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# vbase-api-py
|
|
20
|
+
|
|
21
|
+
vBase REST API Python Client
|
|
22
|
+
|
|
23
|
+
See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
|
|
30
|
+
|
|
31
|
+
## Introduction
|
|
32
|
+
|
|
33
|
+
vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
|
|
34
|
+
|
|
35
|
+
Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
|
|
36
|
+
|
|
37
|
+
vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
|
|
38
|
+
- Provably point-in-time datasets
|
|
39
|
+
- Auditable investing track records
|
|
40
|
+
- Sound backtests, historical simulations, and time-series modeling
|
|
41
|
+
|
|
42
|
+
vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
|
|
43
|
+
|
|
44
|
+
With vBase, creating and consuming provably correct data is as easy as pressing a button.
|
|
45
|
+
|
|
46
|
+
## References
|
|
47
|
+
- [vBase Website](https://vbase.com)
|
|
48
|
+
- [vBase Documentation](https://docs.vbase.com/)
|
|
49
|
+
- [vBase Swagger UI](https://app.vbase.com/swagger/)
|
|
50
|
+
- [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
Install the package using pip:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install vbase-api
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Quick Start
|
|
61
|
+
|
|
62
|
+
### Getting Your API Key
|
|
63
|
+
|
|
64
|
+
To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
|
|
65
|
+
|
|
66
|
+
### Basic Usage
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
from vbase_api import VBaseAPIClient
|
|
70
|
+
|
|
71
|
+
# Initialize the client
|
|
72
|
+
client = VBaseAPIClient(api_key="your-bearer-token")
|
|
73
|
+
|
|
74
|
+
# Stamp some data
|
|
75
|
+
stamp = client.create_stamp(data="Important data to be stamped")
|
|
76
|
+
print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
|
|
77
|
+
|
|
78
|
+
# List your collections
|
|
79
|
+
collections = client.get_collections()
|
|
80
|
+
for collection in collections:
|
|
81
|
+
print(f"{collection.name}: {collection.cid}")
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# vbase-api-py
|
|
2
|
+
|
|
3
|
+
vBase REST API Python Client
|
|
4
|
+
|
|
5
|
+
See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## License
|
|
10
|
+
|
|
11
|
+
This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
|
|
12
|
+
|
|
13
|
+
## Introduction
|
|
14
|
+
|
|
15
|
+
vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
|
|
16
|
+
|
|
17
|
+
Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
|
|
18
|
+
|
|
19
|
+
vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
|
|
20
|
+
- Provably point-in-time datasets
|
|
21
|
+
- Auditable investing track records
|
|
22
|
+
- Sound backtests, historical simulations, and time-series modeling
|
|
23
|
+
|
|
24
|
+
vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
|
|
25
|
+
|
|
26
|
+
With vBase, creating and consuming provably correct data is as easy as pressing a button.
|
|
27
|
+
|
|
28
|
+
## References
|
|
29
|
+
- [vBase Website](https://vbase.com)
|
|
30
|
+
- [vBase Documentation](https://docs.vbase.com/)
|
|
31
|
+
- [vBase Swagger UI](https://app.vbase.com/swagger/)
|
|
32
|
+
- [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
Install the package using pip:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install vbase-api
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
### Getting Your API Key
|
|
45
|
+
|
|
46
|
+
To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
|
|
47
|
+
|
|
48
|
+
### Basic Usage
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
from vbase_api import VBaseAPIClient
|
|
52
|
+
|
|
53
|
+
# Initialize the client
|
|
54
|
+
client = VBaseAPIClient(api_key="your-bearer-token")
|
|
55
|
+
|
|
56
|
+
# Stamp some data
|
|
57
|
+
stamp = client.create_stamp(data="Important data to be stamped")
|
|
58
|
+
print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
|
|
59
|
+
|
|
60
|
+
# List your collections
|
|
61
|
+
collections = client.get_collections()
|
|
62
|
+
for collection in collections:
|
|
63
|
+
print(f"{collection.name}: {collection.cid}")
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
|
|
@@ -1,36 +1,35 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools >= 77.0.3"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "vbase-api" # This is the name on PyPI
|
|
7
|
-
|
|
8
|
-
description = "vBase REST API Python Client"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.8"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
[tool.setuptools]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
[tool.setuptools.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools >= 77.0.3"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vbase-api" # This is the name on PyPI
|
|
7
|
+
dynamic = ["version", "dependencies"]
|
|
8
|
+
description = "vBase REST API Python Client"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = "Apache-2.0"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "vBase", email = "tech@vbase.com" }
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
keywords = ["vbase", "stamping", "web3", "blockchain", "validation"]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.urls]
|
|
23
|
+
Homepage = "https://github.com/validityBase/vbase-api-py"
|
|
24
|
+
Documentation = "https://docs.vbase.com/"
|
|
25
|
+
|
|
26
|
+
# This tells setuptools where to find the code
|
|
27
|
+
[tool.setuptools]
|
|
28
|
+
package-dir = {"" = "src"}
|
|
29
|
+
|
|
30
|
+
[tool.setuptools.packages.find]
|
|
31
|
+
where = ["src"]
|
|
32
|
+
|
|
33
|
+
[tool.setuptools.dynamic]
|
|
34
|
+
version = {attr = "vbase_api._version.__version__"}
|
|
35
|
+
dependencies = {file = ["requirements.in"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests>=2.7.0,<3
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# src/simplemath/__init__.py
|
|
2
2
|
|
|
3
|
+
from ._version import __version__
|
|
3
4
|
from .vbase_api_client import VBaseAPIError, VBaseAPIClient
|
|
4
5
|
from .vbase_api_models import (
|
|
5
6
|
Collection,
|
|
@@ -10,6 +11,7 @@ from .vbase_api_models import (
|
|
|
10
11
|
)
|
|
11
12
|
|
|
12
13
|
__all__ = [
|
|
14
|
+
"__version__",
|
|
13
15
|
"VBaseAPIClient",
|
|
14
16
|
"VBaseAPIError",
|
|
15
17
|
"Collection",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.3"
|
|
@@ -13,6 +13,7 @@ import requests
|
|
|
13
13
|
from pathlib import Path
|
|
14
14
|
from typing import Dict, List, Optional, Any, BinaryIO, Union
|
|
15
15
|
|
|
16
|
+
from ._version import __version__
|
|
16
17
|
from .vbase_api_models import (
|
|
17
18
|
Collection,
|
|
18
19
|
StampCreatedResponse,
|
|
@@ -48,9 +49,11 @@ class VBaseAPIClient:
|
|
|
48
49
|
timeout: Request timeout in seconds (default: 30)
|
|
49
50
|
|
|
50
51
|
Example:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
.. code-block:: python
|
|
53
|
+
|
|
54
|
+
client = VBaseAPIClient(api_key="your-bearer-token")
|
|
55
|
+
collections = client.list_collections()
|
|
56
|
+
stamp = client.create_stamp(data={"hello": "world"})
|
|
54
57
|
"""
|
|
55
58
|
|
|
56
59
|
DEFAULT_BASE_URL = "https://app.vbase.com"
|
|
@@ -69,6 +72,7 @@ class VBaseAPIClient:
|
|
|
69
72
|
self.session = requests.Session()
|
|
70
73
|
self.session.headers.update({
|
|
71
74
|
'Authorization': f'Bearer {api_key}',
|
|
75
|
+
'User-Agent': f'vBase API Python Client v{__version__}',
|
|
72
76
|
})
|
|
73
77
|
|
|
74
78
|
def _get_url(self, endpoint: str) -> str:
|
|
@@ -144,9 +148,11 @@ class VBaseAPIClient:
|
|
|
144
148
|
VBaseAPIError: If the request fails
|
|
145
149
|
|
|
146
150
|
Example:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
151
|
+
.. code-block:: python
|
|
152
|
+
|
|
153
|
+
collections = client.get_collections(is_pinned=True)
|
|
154
|
+
for collection in collections:
|
|
155
|
+
print(f"{collection.name}: {collection.cid}")
|
|
150
156
|
"""
|
|
151
157
|
params = {}
|
|
152
158
|
if user_address is not None:
|
|
@@ -185,13 +191,15 @@ class VBaseAPIClient:
|
|
|
185
191
|
VBaseAPIError: If the request fails or collection already exists
|
|
186
192
|
|
|
187
193
|
Example:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
.. code-block:: python
|
|
195
|
+
|
|
196
|
+
collection = client.create_collection(
|
|
197
|
+
name="My Collection",
|
|
198
|
+
cid="0x1234567890abcdef...",
|
|
199
|
+
description="A sample collection",
|
|
200
|
+
is_pinned=True
|
|
201
|
+
)
|
|
202
|
+
print(f"Created: {collection.name}")
|
|
195
203
|
"""
|
|
196
204
|
data = {
|
|
197
205
|
'name': name,
|
|
@@ -250,17 +258,19 @@ class VBaseAPIClient:
|
|
|
250
258
|
ValueError: If invalid parameters are provided
|
|
251
259
|
|
|
252
260
|
Example:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
.. code-block:: python
|
|
262
|
+
|
|
263
|
+
# Stamp inline data
|
|
264
|
+
stamp = client.create_stamp(data={"hello": "world"})
|
|
265
|
+
print(f"Object CID: {stamp.commitment_receipt.object_cid}")
|
|
266
|
+
|
|
267
|
+
# Stamp a file
|
|
268
|
+
stamp = client.create_stamp(file="document.pdf", collection_name="Documents")
|
|
269
|
+
if stamp.file_object:
|
|
270
|
+
print(f"File: {stamp.file_object.file_name}")
|
|
271
|
+
|
|
272
|
+
# Stamp an existing CID
|
|
273
|
+
stamp = client.create_stamp(data_cid="Qm...")
|
|
264
274
|
"""
|
|
265
275
|
if not any([file, data, data_cid]):
|
|
266
276
|
raise ValueError("At least one of 'file', 'data', or 'data_cid' must be provided")
|
|
@@ -335,11 +345,13 @@ class VBaseAPIClient:
|
|
|
335
345
|
VBaseAPIError: If validation fails or file not found in blockchain
|
|
336
346
|
|
|
337
347
|
Example:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
348
|
+
.. code-block:: python
|
|
349
|
+
|
|
350
|
+
result = client.upload_stamped_file(
|
|
351
|
+
collection_name="My Collection",
|
|
352
|
+
file="stamped_document.pdf"
|
|
353
|
+
)
|
|
354
|
+
print(f"Uploaded: {result.file_object.file_name}")
|
|
343
355
|
"""
|
|
344
356
|
form_data = {
|
|
345
357
|
'collection_name': collection_name
|
|
@@ -384,12 +396,14 @@ class VBaseAPIClient:
|
|
|
384
396
|
VBaseAPIError: If the request fails
|
|
385
397
|
|
|
386
398
|
Example:
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
399
|
+
.. code-block:: python
|
|
400
|
+
|
|
401
|
+
result = client.verify_stamps(
|
|
402
|
+
cids=["0xbd...1", "0xcd...2"],
|
|
403
|
+
filter_by_user=True
|
|
404
|
+
)
|
|
405
|
+
for stamp in result.stamp_list:
|
|
406
|
+
print(f"Found stamp at {stamp.timestamp}")
|
|
393
407
|
"""
|
|
394
408
|
data = {
|
|
395
409
|
'cids': cids,
|
|
@@ -419,8 +433,10 @@ class VBaseAPIClient:
|
|
|
419
433
|
VBaseAPIError: If the request fails
|
|
420
434
|
|
|
421
435
|
Example:
|
|
422
|
-
|
|
423
|
-
|
|
436
|
+
.. code-block:: python
|
|
437
|
+
|
|
438
|
+
user = client.get_current_user()
|
|
439
|
+
print(f"User email: {user.email}")
|
|
424
440
|
"""
|
|
425
441
|
response = self.session.get(
|
|
426
442
|
self._get_url('users/me'),
|
|
@@ -443,8 +459,10 @@ class VBaseAPIClient:
|
|
|
443
459
|
VBaseAPIError: If the request fails or user not found
|
|
444
460
|
|
|
445
461
|
Example:
|
|
446
|
-
|
|
447
|
-
|
|
462
|
+
.. code-block:: python
|
|
463
|
+
|
|
464
|
+
user = client.get_user("0x...")
|
|
465
|
+
print(f"User name: {user.name}")
|
|
448
466
|
"""
|
|
449
467
|
response = self.session.get(
|
|
450
468
|
self._get_url(f'users/{user_address}'),
|
|
@@ -484,7 +502,9 @@ def create_client(
|
|
|
484
502
|
Configured VBaseAPIClient instance
|
|
485
503
|
|
|
486
504
|
Example:
|
|
487
|
-
|
|
488
|
-
|
|
505
|
+
.. code-block:: python
|
|
506
|
+
|
|
507
|
+
client = create_client(api_key="your-bearer-token")
|
|
508
|
+
collections = client.get_collections()
|
|
489
509
|
"""
|
|
490
510
|
return VBaseAPIClient(api_key=api_key, base_url=base_url, timeout=timeout)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vbase-api
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: vBase REST API Python Client
|
|
5
|
+
Author-email: vBase <tech@vbase.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/validityBase/vbase-api-py
|
|
8
|
+
Project-URL: Documentation, https://docs.vbase.com/
|
|
9
|
+
Keywords: vbase,stamping,web3,blockchain,validation
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE.txt
|
|
15
|
+
License-File: NOTICE.txt
|
|
16
|
+
Requires-Dist: requests<3,>=2.7.0
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# vbase-api-py
|
|
20
|
+
|
|
21
|
+
vBase REST API Python Client
|
|
22
|
+
|
|
23
|
+
See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
|
|
30
|
+
|
|
31
|
+
## Introduction
|
|
32
|
+
|
|
33
|
+
vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
|
|
34
|
+
|
|
35
|
+
Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
|
|
36
|
+
|
|
37
|
+
vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
|
|
38
|
+
- Provably point-in-time datasets
|
|
39
|
+
- Auditable investing track records
|
|
40
|
+
- Sound backtests, historical simulations, and time-series modeling
|
|
41
|
+
|
|
42
|
+
vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
|
|
43
|
+
|
|
44
|
+
With vBase, creating and consuming provably correct data is as easy as pressing a button.
|
|
45
|
+
|
|
46
|
+
## References
|
|
47
|
+
- [vBase Website](https://vbase.com)
|
|
48
|
+
- [vBase Documentation](https://docs.vbase.com/)
|
|
49
|
+
- [vBase Swagger UI](https://app.vbase.com/swagger/)
|
|
50
|
+
- [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
Install the package using pip:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install vbase-api
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Quick Start
|
|
61
|
+
|
|
62
|
+
### Getting Your API Key
|
|
63
|
+
|
|
64
|
+
To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
|
|
65
|
+
|
|
66
|
+
### Basic Usage
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
from vbase_api import VBaseAPIClient
|
|
70
|
+
|
|
71
|
+
# Initialize the client
|
|
72
|
+
client = VBaseAPIClient(api_key="your-bearer-token")
|
|
73
|
+
|
|
74
|
+
# Stamp some data
|
|
75
|
+
stamp = client.create_stamp(data="Important data to be stamped")
|
|
76
|
+
print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
|
|
77
|
+
|
|
78
|
+
# List your collections
|
|
79
|
+
collections = client.get_collections()
|
|
80
|
+
for collection in collections:
|
|
81
|
+
print(f"{collection.name}: {collection.cid}")
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
LICENSE.txt
|
|
2
|
+
MANIFEST.in
|
|
2
3
|
NOTICE.txt
|
|
3
4
|
README.md
|
|
4
5
|
pyproject.toml
|
|
6
|
+
requirements.in
|
|
5
7
|
src/vbase_api/__init__.py
|
|
8
|
+
src/vbase_api/_version.py
|
|
6
9
|
src/vbase_api/vbase_api_client.py
|
|
7
10
|
src/vbase_api/vbase_api_models.py
|
|
8
11
|
src/vbase_api.egg-info/PKG-INFO
|
|
9
12
|
src/vbase_api.egg-info/SOURCES.txt
|
|
10
13
|
src/vbase_api.egg-info/dependency_links.txt
|
|
11
14
|
src/vbase_api.egg-info/requires.txt
|
|
12
|
-
src/vbase_api.egg-info/top_level.txt
|
|
15
|
+
src/vbase_api.egg-info/top_level.txt
|
|
16
|
+
tests/test_file_integrity_e2e.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests<3,>=2.7.0
|