Proto: Admin v1
Source: proto/ramp/admin/v1/admin.proto
Services
Section titled “Services”AdminService
Section titled “AdminService”Exchange operator overrides: the tenant fee rate and the tenant reporting policy. SetOfferPrice and SetDeliveryWitnessMode are planned extensions of this service and are tracked separately.
| RPC | Request | Response | Description |
|---|---|---|---|
SetTenantFeeRate | SetTenantFeeRateRequest | SetTenantFeeRateResponse | Sets the tenant's fee rate (basis points) and optional operator note. Full replace: the previous rate and note are overwritten. |
SetReportingPolicy | SetReportingPolicyRequest | SetReportingPolicyResponse | Replaces the tenant's reporting policy (required report fields, quantity tolerance, reporting window). Full replace: omitted optional fields clear their value so the receiving Exchange's defaults apply. |
Messages — Tenant Fee Rate
Section titled “Messages — Tenant Fee Rate”TenantFeeRate
Section titled “TenantFeeRate”The fee-rate payload shared by the SetTenantFeeRate request and response, so its rules are stated once. The fee is in basis points of gross — floor(gross * bps / 10000), so a value below 10000 keeps it strictly under 100%, and integer basis points avoid float drift when aggregating many charges. 0 is a legitimate explicit value (“no fee”), not an unset sentinel. Omitting notes clears any existing note.
| Field | Type | Number | Description |
|---|---|---|---|
tenant_id | string | 1 | The tenant whose fee rate is being set. |
fee_rate_bps | int32 | 2 | Fee rate in basis points of gross: fee = floor(gross * bps / 10000). Below 10000 keeps the fee strictly under 100%; integer basis points avoid float drift when aggregating many charges. 0 is a legitimate explicit value ("no fee"), not an unset sentinel. |
notes | optional string | 3 | Operator commentary on the rate (why it was set, by whom, ticket link). Omitted clears any existing note. |
SetTenantFeeRateRequest
Section titled “SetTenantFeeRateRequest”A thin {ver, rate} envelope carrying the required TenantFeeRate to apply.
| Field | Type | Number | Description |
|---|---|---|---|
ver | string | 1 | RAMP protocol version — "1.0". Stamped by the sender from a single constant; advisory on receive. See "Protocol version" in ramp.proto. |
rate | TenantFeeRate | 2 | The fee rate to apply. Required — an absent payload would otherwise skip validation of its fields. |
SetTenantFeeRateResponse
Section titled “SetTenantFeeRateResponse”Echoes the TenantFeeRate as persisted.
| Field | Type | Number | Description |
|---|---|---|---|
ver | string | 1 | RAMP protocol version — "1.0". Stamped by the sender from a single constant; advisory on receive. See "Protocol version" in ramp.proto. |
rate | TenantFeeRate | 2 | The fee rate as persisted. |
Messages — Reporting Policy
Section titled “Messages — Reporting Policy”ReportingPolicy
Section titled “ReportingPolicy”The reporting-policy payload shared by the SetReportingPolicy request and response, so its rules are stated once: the report field names the usage-report validator requires, the accepted quantity tolerance (a fraction, 0–1, where 0 requires an exact match), and the reporting window in seconds (capped at one year). Omitted optional fields clear their value so the receiving Exchange’s defaults apply. The wire constrains only the token shape of required_fields; which names are meaningful is defined by the receiving Exchange and may change without a contract change, and names are a set (repeats are rejected). The window applies to obligations minted after the call — obligations already issued keep the window they were minted with.
| Field | Type | Number | Description |
|---|---|---|---|
tenant_id | string | 1 | The tenant whose reporting policy is being replaced. |
required_fields | repeated string | 2 | Report field names the usage-report validator requires. The wire constrains only the token shape; which names are meaningful is defined by the receiving Exchange and may change without a contract change. Names are a set: repeats are rejected. Empty means no required fields. |
quantity_tolerance | optional double | 3 | Accepted relative deviation between estimated and reported quantity, as a fraction: 0 requires an exact match, 1 accepts any deviation. Omitted: the receiving Exchange's default tolerance applies. |
window_seconds | optional int32 | 4 | Reporting window in seconds. Applies to obligations minted after this call; obligations already issued keep the window they were minted with. Capped at one year. Omitted: the receiving Exchange's default applies. |
SetReportingPolicyRequest
Section titled “SetReportingPolicyRequest”A thin {ver, policy} envelope carrying the required ReportingPolicy to apply.
| Field | Type | Number | Description |
|---|---|---|---|
ver | string | 1 | RAMP protocol version — "1.0". Stamped by the sender from a single constant; advisory on receive. See "Protocol version" in ramp.proto. |
policy | ReportingPolicy | 2 | The reporting policy to apply. Required — an absent payload would otherwise skip validation of its fields. |
SetReportingPolicyResponse
Section titled “SetReportingPolicyResponse”Echoes the ReportingPolicy as persisted.
| Field | Type | Number | Description |
|---|---|---|---|
ver | string | 1 | RAMP protocol version — "1.0". Stamped by the sender from a single constant; advisory on receive. See "Protocol version" in ramp.proto. |
policy | ReportingPolicy | 2 | The reporting policy as persisted. |