Objects in NeoFS are addressed by their ContainerID and ObjectID.
String presentation of Address
is a concatenation of string encoded
ContainerID
and ObjectID
delimited by '/' character.
Field | Type | Label | Description |
---|---|---|---|
container_id | ContainerID | Container identifier | |
object_id | ObjectID | Object identifier |
Checksum message. Depending on checksum algorithm type, the string presentation may vary:
- TZ
Hex encoded string without0x
prefix - SHA256
Hex encoded string without0x
prefix
Field | Type | Label | Description |
---|---|---|---|
type | ChecksumType | Checksum algorithm type | |
sum | bytes | Checksum itself |
NeoFS container identifier. Container structures are immutable and content-addressed.
ContainerID
is a 32 byte long
SHA256 hash of
stable-marshalled container message. ID consisting of all zero bytes is
reserved for undefined value and must not be specified as a field.
String presentation is a base58 encoded string.
JSON value will be data encoded as a string using standard base64 encoding with paddings. Either standard or URL-safe base64 encoding with/without paddings are accepted.
Field | Type | Label | Description |
---|---|---|---|
value | bytes | Container identifier in a binary format. |
NeoFS Object unique identifier. Objects are immutable and content-addressed.
It means ObjectID
will change if the header
or the payload
changes.
ObjectID
is a 32 byte long
SHA256 hash of
the object's header
field, which, in it's turn, contains the hash of the object's
payload. ID consisting of all zero bytes is reserved for undefined value and
must not be specified as a field.
String presentation is a base58 encoded string.
JSON value will be data encoded as a string using standard base64 encoding with paddings. Either standard or URL-safe base64 encoding with/without paddings are accepted.
Field | Type | Label | Description |
---|---|---|---|
value | bytes | Object identifier in a binary format |
OwnerID
is a derivative of a user's main public key. The transformation
algorithm is the same as for Neo3 wallet addresses. Neo3 wallet address can
be directly used as OwnerID
.
OwnerID
is a 25 bytes sequence starting with Neo version prefix byte
followed by 20 bytes of ScrptHash and 4 bytes of checksum.
String presentation is a Base58 Check Encoded string.
JSON value will be data encoded as a string using standard base64 encoding with paddings. Either standard or URL-safe base64 encoding with/without paddings are accepted.
Field | Type | Label | Description |
---|---|---|---|
value | bytes | Identifier of the container owner in a binary format |
Signature of something in NeoFS.
Field | Type | Label | Description |
---|---|---|---|
key | bytes | Public key used for signing | |
sign | bytes | Signature | |
scheme | SignatureScheme | Scheme contains digital signature scheme identifier |
RFC 6979 signature.
Field | Type | Label | Description |
---|---|---|---|
key | bytes | Public key used for signing | |
sign | bytes | Deterministic ECDSA with SHA-256 hashing |
NeoFS subnetwork identifier.
String representation of a value is base-10 integer.
JSON representation is an object containing a single value
number field.
DEPRECATED. Kept for compatibility only.
Field | Type | Label | Description |
---|---|---|---|
value | fixed32 | 4-byte integer subnetwork identifier. |
API version used by a node.
String presentation is a Semantic Versioning 2.0.0 compatible version string
with 'v' prefix. i.e. vX.Y
, where X
is the major number, Y
is the minor number.
Field | Type | Label | Description |
---|---|---|---|
major | uint32 | Major API version | |
minor | uint32 | Minor API version |
Checksum algorithm type.
Name | Number | Description |
---|---|---|
CHECKSUM_TYPE_UNSPECIFIED | 0 | Unknown. Not used |
TZ | 1 | Tillich-Zemor homomorphic hash function |
SHA256 | 2 | SHA-256 |
Signature scheme describes digital signing scheme used for (key, signature) pair.
Name | Number | Description |
---|---|---|
ECDSA_SHA512 | 0 | ECDSA with SHA-512 hashing (FIPS 186-3) |
ECDSA_RFC6979_SHA256 | 1 | Deterministic ECDSA with SHA-256 hashing (RFC 6979) |
ECDSA_RFC6979_SHA256_WALLET_CONNECT | 2 | Deterministic ECDSA with SHA-256 hashing using WalletConnect API. Here the algorithm is the same, but the message format differs. |
.proto Type | Notes | C++ Type | Java Type | Python Type |
---|---|---|---|---|
double | double | double | float | |
float | float | float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
uint32 | Uses variable-length encoding. | uint32 | int | int/long |
uint64 | Uses variable-length encoding. | uint64 | long | int/long |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
sfixed32 | Always four bytes. | int32 | int | int |
sfixed64 | Always eight bytes. | int64 | long | int/long |
bool | bool | boolean | boolean | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |