Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
669389e
feat(aep-86): add verification SDK surface
chalabi2 May 14, 2026
814c1fb
docs(aep-86): document lease close reason mapping
chalabi2 May 14, 2026
8744888
fix(aep-86,sdl): collapse empty verification blocks
chalabi2 May 14, 2026
1b8661f
fix(aep-86): align MinBondForTier helper
chalabi2 May 14, 2026
4fb6875
fix(aep-86,sdl): reject tier-zero filters
chalabi2 May 18, 2026
6ea2e77
fix(aep-86): sync generated SDK outputs
chalabi2 May 18, 2026
2b4f4e2
fix(aep-86): align l1 sdk outputs with repo tooling
chalabi2 May 19, 2026
a685628
feat(aep-86): add inventory snapshot payload type
chalabi2 May 19, 2026
a9e6888
fix(aep-86): include full proto-gen outputs
chalabi2 May 19, 2026
791ba0a
fix(verification): register message interfaces
chalabi2 May 20, 2026
1516502
feat(market): add provider lease stats query surface
chalabi2 May 20, 2026
959c5d0
feat(verification): expose query client
chalabi2 May 21, 2026
6a72d34
fix(market): sync generated lease stats output
chalabi2 May 21, 2026
5e7c63d
fix(verification): clarify auditor bond states
chalabi2 May 26, 2026
d293f7e
fix(aep-86): refresh ts proto output after rebase
chalabi2 May 27, 2026
0eec47b
feat(verification): add software identity metadata
chalabi2 Jun 1, 2026
b7033ff
fix(mocks): regenerate market query client
chalabi2 Jun 11, 2026
b21d173
fix(client): regenerate verification query mock
chalabi2 Jun 20, 2026
f722387
feat(inventory): add committed snapshot rpc
chalabi2 Jun 24, 2026
7da138a
feat(market): extend provider lease stats
chalabi2 Jun 24, 2026
17e6c95
feat(provider): add attestation quote client
chalabi2 Jun 25, 2026
20b2ce2
feat(aep86): add provider verification cli
chalabi2 Jun 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ apis:
Params: MarketParams
- url: "./.cache/tmp/swagger-gen/akash/market/v1beta5/service.swagger.json"
- url: "./.cache/tmp/swagger-gen/akash/provider/v1beta4/query.swagger.json"
operationIds:
rename:
Params: ProviderParams
- url: "./.cache/tmp/swagger-gen/akash/take/v1/query.swagger.json"
operationIds:
rename:
Expand Down
3,619 changes: 3,399 additions & 220 deletions docs/proto/node.md

Large diffs are not rendered by default.

273 changes: 273 additions & 0 deletions docs/proto/provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,18 @@
- [ClusterRPC](#akash.inventory.v1.ClusterRPC)
- [NodeRPC](#akash.inventory.v1.NodeRPC)

- [akash/inventory/v1/snapshot.proto](#akash/inventory/v1/snapshot.proto)
- [GetCommittedInventorySnapshotRequest](#akash.inventory.v1.GetCommittedInventorySnapshotRequest)
- [GetCommittedInventorySnapshotResponse](#akash.inventory.v1.GetCommittedInventorySnapshotResponse)
- [GetInventorySnapshotRequest](#akash.inventory.v1.GetInventorySnapshotRequest)
- [GetInventorySnapshotResponse](#akash.inventory.v1.GetInventorySnapshotResponse)
- [SnapshotEvidenceSection](#akash.inventory.v1.SnapshotEvidenceSection)
- [SnapshotPayload](#akash.inventory.v1.SnapshotPayload)
- [SnapshotResourceSummary](#akash.inventory.v1.SnapshotResourceSummary)
- [SoftwareIdentity](#akash.inventory.v1.SoftwareIdentity)

- [InventoryService](#akash.inventory.v1.InventoryService)

- [akash/manifest/v2beta3/httpoptions.proto](#akash/manifest/v2beta3/httpoptions.proto)
- [ServiceExposeHTTPOptions](#akash.manifest.v2beta3.ServiceExposeHTTPOptions)

Expand All @@ -49,11 +61,15 @@
- [ServiceParams](#akash.manifest.v2beta3.ServiceParams)
- [ServicePermissions](#akash.manifest.v2beta3.ServicePermissions)
- [StorageParams](#akash.manifest.v2beta3.StorageParams)
- [TEEParams](#akash.manifest.v2beta3.TEEParams)

- [akash/manifest/v2beta3/group.proto](#akash/manifest/v2beta3/group.proto)
- [Group](#akash.manifest.v2beta3.Group)

- [akash/provider/lease/v1/service.proto](#akash/provider/lease/v1/service.proto)
- [AttestationGPUReport](#akash.provider.lease.v1.AttestationGPUReport)
- [AttestationQuoteRequest](#akash.provider.lease.v1.AttestationQuoteRequest)
- [AttestationQuoteResponse](#akash.provider.lease.v1.AttestationQuoteResponse)
- [ForwarderPortStatus](#akash.provider.lease.v1.ForwarderPortStatus)
- [LeaseIPStatus](#akash.provider.lease.v1.LeaseIPStatus)
- [LeaseServiceStatus](#akash.provider.lease.v1.LeaseServiceStatus)
Expand Down Expand Up @@ -480,6 +496,185 @@



<a name="akash/inventory/v1/snapshot.proto"></a>
<p align="right"><a href="#top">Top</a></p>

## akash/inventory/v1/snapshot.proto



<a name="akash.inventory.v1.GetCommittedInventorySnapshotRequest"></a>

### GetCommittedInventorySnapshotRequest
GetCommittedInventorySnapshotRequest is the request type for
GetCommittedInventorySnapshot.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `snapshot_hash` | [bytes](#bytes) | | snapshot_hash optionally selects a committed snapshot by SHA-256 hash. When omitted, the latest committed snapshot is returned. |






<a name="akash.inventory.v1.GetCommittedInventorySnapshotResponse"></a>

### GetCommittedInventorySnapshotResponse
GetCommittedInventorySnapshotResponse is the response type for
GetCommittedInventorySnapshot.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `snapshot_payload` | [bytes](#bytes) | | snapshot_payload is the exact committed inventory snapshot payload. |
| `signature` | [bytes](#bytes) | | signature is the provider signature over snapshot_payload. |
| `provider` | [string](#string) | | provider is the provider account address in bech32 form. |
| `snapshot_hash` | [bytes](#bytes) | | snapshot_hash is the SHA-256 hash of snapshot_payload. |
| `posted_at` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | posted_at is when the provider stored this committed snapshot locally. |






<a name="akash.inventory.v1.GetInventorySnapshotRequest"></a>

### GetInventorySnapshotRequest
GetInventorySnapshotRequest is the request type for GetInventorySnapshot.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `nonce` | [bytes](#bytes) | | nonce is an optional 32-byte challenge bound into the signed payload. |






<a name="akash.inventory.v1.GetInventorySnapshotResponse"></a>

### GetInventorySnapshotResponse
GetInventorySnapshotResponse is the response type for GetInventorySnapshot.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `snapshot_payload` | [bytes](#bytes) | | snapshot_payload is the opaque inventory snapshot payload. |
| `signature` | [bytes](#bytes) | | signature is the provider signature over snapshot_payload. |
| `provider` | [string](#string) | | provider is the provider account address in bech32 form. |






<a name="akash.inventory.v1.SnapshotEvidenceSection"></a>

### SnapshotEvidenceSection
SnapshotEvidenceSection carries an opaque payload from one collector.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `name` | [string](#string) | | |
| `payload` | [bytes](#bytes) | | |






<a name="akash.inventory.v1.SnapshotPayload"></a>

### SnapshotPayload
SnapshotPayload is the deterministic payload signed by a provider.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `schema_version` | [uint32](#uint32) | | schema_version identifies the payload schema used by snapshot_payload. |
| `provider` | [string](#string) | | provider is the provider account address in bech32 form. |
| `chain_id` | [string](#string) | | chain_id binds the snapshot to the chain the provider is operating on. |
| `nonce` | [bytes](#bytes) | | nonce is the optional challenge supplied by the caller. |
| `timestamp` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | timestamp is the provider-local snapshot generation time. |
Comment thread
chalabi2 marked this conversation as resolved.
| `cluster` | [Cluster](#akash.inventory.v1.Cluster) | | cluster is the current cluster inventory view. |
| `resource_summary` | [SnapshotResourceSummary](#akash.inventory.v1.SnapshotResourceSummary) | | resource_summary is the chain-facing summary derived from the full snapshot. |
| `evidence_sections` | [SnapshotEvidenceSection](#akash.inventory.v1.SnapshotEvidenceSection) | repeated | evidence_sections carries named collector payloads for auditor evidence. |






<a name="akash.inventory.v1.SnapshotResourceSummary"></a>

### SnapshotResourceSummary
SnapshotResourceSummary captures the snapshot fields posted on-chain.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `total_gpus` | [uint32](#uint32) | | |
| `total_vcpus` | [uint32](#uint32) | | |
| `total_memory_mb` | [uint64](#uint64) | | |
| `total_storage_mb` | [uint64](#uint64) | | |
| `active_leases` | [uint32](#uint32) | | |
| `software_version` | [string](#string) | | software_version is the provider software version string kept for compatibility. |
| `software_signature` | [bytes](#bytes) | | software_signature is the provider software signature kept for compatibility. |
| `software_identity` | [SoftwareIdentity](#akash.inventory.v1.SoftwareIdentity) | | software_identity carries structured release artifact metadata. |






<a name="akash.inventory.v1.SoftwareIdentity"></a>

### SoftwareIdentity
SoftwareIdentity carries release artifact identity and signature metadata.
Providers report these fields; auditors verify them off-chain against the
published Akash release key.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `version` | [string](#string) | | version is the provider or inventory software version string. |
| `artifact_ref` | [string](#string) | | artifact_ref identifies the release artifact whose digest/signature is reported. |
| `digest_algorithm` | [string](#string) | | digest_algorithm identifies the digest algorithm, e.g. sha3-256. |
| `digest` | [bytes](#bytes) | | digest is the release artifact digest bytes. |
| `signature_type` | [string](#string) | | signature_type identifies the signature format, e.g. cosign. |
| `signature` | [bytes](#bytes) | | signature is the detached signature bytes when carried inline. |
| `signature_ref` | [string](#string) | | signature_ref identifies an external signature or bundle. |
| `public_key_ref` | [string](#string) | | public_key_ref identifies the published release public key. |





<!-- end messages -->

<!-- end enums -->

<!-- end HasExtensions -->


<a name="akash.inventory.v1.InventoryService"></a>

### InventoryService
Comment thread
chalabi2 marked this conversation as resolved.
InventoryService exposes signed provider inventory snapshots.

| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
| `GetInventorySnapshot` | [GetInventorySnapshotRequest](#akash.inventory.v1.GetInventorySnapshotRequest) | [GetInventorySnapshotResponse](#akash.inventory.v1.GetInventorySnapshotResponse) | GetInventorySnapshot returns a fresh provider-signed live challenge snapshot. | POST|/v1/inventory/snapshot|
| `GetCommittedInventorySnapshot` | [GetCommittedInventorySnapshotRequest](#akash.inventory.v1.GetCommittedInventorySnapshotRequest) | [GetCommittedInventorySnapshotResponse](#akash.inventory.v1.GetCommittedInventorySnapshotResponse) | GetCommittedInventorySnapshot returns an exact provider-signed committed snapshot payload by hash, or the latest committed snapshot when no hash is provided. | POST|/v1/inventory/snapshot/committed|

<!-- end services -->



<a name="akash/manifest/v2beta3/httpoptions.proto"></a>
<p align="right"><a href="#top">Top</a></p>

Expand Down Expand Up @@ -615,6 +810,7 @@
| `storage` | [StorageParams](#akash.manifest.v2beta3.StorageParams) | repeated | |
| `credentials` | [ImageCredentials](#akash.manifest.v2beta3.ImageCredentials) | | |
| `permissions` | [ServicePermissions](#akash.manifest.v2beta3.ServicePermissions) | | |
| `tee` | [TEEParams](#akash.manifest.v2beta3.TEEParams) | | |



Expand Down Expand Up @@ -654,6 +850,25 @@ Resources map to Kubernetes RBAC permissions:




<a name="akash.manifest.v2beta3.TEEParams"></a>

### TEEParams
TEEParams configures Trusted Execution Environment for the service.
The type field selects the TEE capability and the provider resolves the
runtime class based on its detected platform (TDX or SNP).
The attestation field controls whether the provider injects an attestation sidecar.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `type` | [string](#string) | | type is the TEE capability: cpu, cpu-gpu |
| `attestation` | [bool](#bool) | | attestation controls whether the provider injects an attestation sidecar. IMPORTANT: proto3 bool defaults to false, but the intended default is true. All producers MUST set this field explicitly. The Go SDL builder enforces this; non-Go clients must set attestation=true when sidecar injection is desired. |





<!-- end messages -->

<!-- end enums -->
Expand Down Expand Up @@ -703,6 +918,63 @@ Resources map to Kubernetes RBAC permissions:



<a name="akash.provider.lease.v1.AttestationGPUReport"></a>

### AttestationGPUReport
AttestationGPUReport holds attestation evidence for a single GPU device.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `device_index` | [uint32](#uint32) | | |
| `report` | [string](#string) | | Base64-encoded hardware-signed GPU attestation report. |






<a name="akash.provider.lease.v1.AttestationQuoteRequest"></a>

### AttestationQuoteRequest
AttestationQuoteRequest is the request body for the AttestationQuote RPC method.
The tenant generates a nonce and sends it; the provider forwards it verbatim
to the attestation sidecar inside the confidential compute pod.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `lease_id` | [akash.market.v1.LeaseID](#akash.market.v1.LeaseID) | | |
| `nonce` | [string](#string) | | Base64-encoded 64-byte nonce generated by the tenant. |
| `bind_tls` | [bool](#bool) | | When true, report_data is computed as SHA-512(tls_pubkey || nonce)[:64] to bind the attestation to the TLS channel. |






<a name="akash.provider.lease.v1.AttestationQuoteResponse"></a>

### AttestationQuoteResponse
AttestationQuoteResponse is the response from the AttestationQuote RPC method.
Contains raw hardware-signed attestation evidence from the TEE sidecar.
The provider never inspects or modifies any field.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `report` | [string](#string) | | Base64-encoded CPU attestation report (SNP ~1184 bytes, TDX ~5243 bytes). |
| `cert_chain` | [string](#string) | | Base64-encoded certificate chain (may be empty). |
| `tee_platform` | [string](#string) | | TEE platform identifier: "snp", "tdx", "snp-gpu", "tdx-gpu". |
| `auxblob` | [string](#string) | | Base64-encoded auxiliary blob (typically empty). |
| `gpu_reports` | [AttestationGPUReport](#akash.provider.lease.v1.AttestationGPUReport) | repeated | Per-device GPU attestation reports for all CC-capable GPUs. |
| `tls_bound` | [bool](#bool) | | Whether report_data was computed with TLS channel binding. |






<a name="akash.provider.lease.v1.ForwarderPortStatus"></a>

### ForwarderPortStatus
Expand Down Expand Up @@ -917,6 +1189,7 @@ Resources map to Kubernetes RBAC permissions:
| `StreamServiceStatus` | [ServiceStatusRequest](#akash.provider.lease.v1.ServiceStatusRequest) | [ServiceStatusResponse](#akash.provider.lease.v1.ServiceStatusResponse) stream | StreamServiceStatus buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE buf:lint:ignore RPC_RESPONSE_STANDARD_NAME | |
| `ServiceLogs` | [ServiceLogsRequest](#akash.provider.lease.v1.ServiceLogsRequest) | [ServiceLogsResponse](#akash.provider.lease.v1.ServiceLogsResponse) | ServiceLogs buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE buf:lint:ignore RPC_RESPONSE_STANDARD_NAME | |
| `StreamServiceLogs` | [ServiceLogsRequest](#akash.provider.lease.v1.ServiceLogsRequest) | [ServiceLogsResponse](#akash.provider.lease.v1.ServiceLogsResponse) stream | StreamServiceLogs buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE buf:lint:ignore RPC_RESPONSE_STANDARD_NAME | |
| `AttestationQuote` | [AttestationQuoteRequest](#akash.provider.lease.v1.AttestationQuoteRequest) | [AttestationQuoteResponse](#akash.provider.lease.v1.AttestationQuoteResponse) | AttestationQuote requests hardware-signed attestation evidence from the confidential compute sidecar. The provider forwards the tenant's nonce to the sidecar and returns the hardware-signed quote verbatim. | POST|/v1/lease/attestation/quote|

<!-- end services -->

Expand Down
Loading
Loading