pub struct RpcIntentResponse {
pub action_result: Option<RpcIntentResponseActionResult>,
pub authorization_details: Vec<RpcIntentResponseAuthorizationDetailsItem>,
pub created_at: f64,
pub created_by_display_name: String,
pub created_by_id: Option<String>,
pub current_resource_data: Option<Wallet>,
pub expires_at: f64,
pub intent_id: String,
pub intent_type: RpcIntentResponseIntentType,
pub request_details: RpcIntentResponseRequestDetails,
pub resource_id: String,
pub status: RpcIntentResponseStatus,
}Expand description
Response for an RPC intent creation request
JSON schema
{
"description": "Response for an RPC intent creation request",
"examples": [
{
"authorization_details": [
{
"display_name": "Admin Key Quorum",
"members": [
{
"display_name": "admin@example.com",
"has_signed": false,
"type": "user",
"user_id": "did:privy:clabcd123"
}
],
"threshold": 1
}
],
"created_at": 1741834854578,
"created_by_display_name": "developer@example.com",
"created_by_id": "did:privy:clabcd123",
"expires_at": 1741921254578,
"intent_id": "clpq1234567890abcdefghij",
"intent_type": "RPC",
"request_details": {
"body": {
"caip2": "eip155:8453",
"chain_type": "ethereum",
"method": "eth_sendTransaction",
"params": {
"transaction": {
"to": "0x0000000000000000000000000000000000000000",
"value": 1
}
}
},
"method": "POST",
"url": "https://api.privy.io/v1/wallets/xs76o3pi0v5syd62ui1wmijw/rpc"
},
"resource_id": "xs76o3pi0v5syd62ui1wmijw",
"status": "pending"
}
],
"type": "object",
"required": [
"authorization_details",
"created_at",
"created_by_display_name",
"expires_at",
"intent_id",
"intent_type",
"request_details",
"resource_id",
"status"
],
"properties": {
"action_result": {
"description": "Result of RPC execution (only present if status is
'executed' or 'failed')",
"type": "object",
"required": [
"executed_at",
"response_body",
"status_code"
],
"properties": {
"authorized_by_display_name": {
"description": "Display name of the key quorum that authorized
execution",
"type": "string"
},
"authorized_by_id": {
"description": "ID of the key quorum that authorized
execution",
"type": "string"
},
"executed_at": {
"description": "Unix timestamp when the action was executed",
"type": "number"
},
"response_body": {
"examples": [
{
"data": {
"caip2": "eip155:8453",
"hash":
"0x0775aeed9c9ce6e0fbc4db25c5e4e6368029651c905c286f813126a09025a21e",
"transaction_request": {
"chain_id": "1",
"from": "0x38Bc05d7b69F63D05337829fA5Dc4896F179B5fA",
"gas_limit": "0x5208",
"max_fee_per_gas": "0xfc328",
"max_priority_fee_per_gas": "0xf4240",
"nonce": 1,
"to": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
"type": 2,
"value": "0x1"
}
},
"method": "eth_sendTransaction"
}
],
"oneOf": [
{
"$ref":
"#/components/schemas/EthereumPersonalSignRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSignTypedDataRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSignTransactionRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSendTransactionRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSignUserOperationRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSign7702AuthorizationRpcResponse"
},
{
"$ref":
"#/components/schemas/EthereumSecp256k1SignRpcResponse"
},
{
"$ref": "#/components/schemas/SolanaSignMessageRpcResponse"
},
{
"$ref":
"#/components/schemas/SolanaSignTransactionRpcResponse"
},
{
"$ref":
"#/components/schemas/SolanaSignAndSendTransactionRpcResponse"
}
]
},
"status_code": {
"description": "HTTP status code from the action execution",
"type": "number"
}
}
},
"authorization_details": {
"description": "Detailed authorization information including key
quorum members, thresholds, and signature status",
"type": "array",
"items": {
"type": "object",
"required": [
"members",
"threshold"
],
"properties": {
"display_name": {
"description": "Display name of the key quorum",
"type": "string"
},
"members": {
"description": "Members in this authorization quorum",
"type": "array",
"items": {
"oneOf": [
{
"title": "User member",
"type": "object",
"required": [
"has_signed",
"type",
"user_id"
],
"properties": {
"display_name": {
"description": "Display name for the user (email,
etc)",
"type": "string"
},
"has_signed": {
"description": "Whether this member has signed the
intent",
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"user"
]
},
"user_id": {
"description": "User ID of the key quorum member",
"type": "string"
}
}
},
{
"title": "Key member",
"type": "object",
"required": [
"has_signed",
"public_key",
"type"
],
"properties": {
"display_name": {
"description": "Display name for the key (if any)",
"type": "string"
},
"has_signed": {
"description": "Whether this key has signed the
intent",
"type": "boolean"
},
"public_key": {
"description": "Public key of the key quorum
member",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"key"
]
}
}
}
]
}
},
"threshold": {
"description": "Number of signatures required from this
quorum",
"type": "number"
}
}
}
},
"created_at": {
"description": "Unix timestamp when the intent was created",
"type": "number"
},
"created_by_display_name": {
"description": "Display name of the user who created the intent",
"type": "string"
},
"created_by_id": {
"description": "ID of the user who created the intent. If
undefined, the intent was created using the app secret",
"type": "string"
},
"current_resource_data": {
"allOf": [
{
"$ref": "#/components/schemas/Wallet"
},
{
"description": "Current state of the wallet before any changes.
If undefined, the resource was deleted and no longer exists"
}
]
},
"expires_at": {
"description": "Unix timestamp when the intent expires",
"type": "number"
},
"intent_id": {
"description": "Unique ID for the intent",
"type": "string"
},
"intent_type": {
"type": "string",
"enum": [
"RPC"
]
},
"request_details": {
"description": "The original RPC request that would be sent to the
wallet endpoint",
"type": "object",
"required": [
"body",
"method",
"url"
],
"properties": {
"body": {
"oneOf": [
{
"$ref": "#/components/schemas/EthereumPersonalSignRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSignTypedDataRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSignTransactionRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSignUserOperationRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSendTransactionRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSign7702AuthorizationRpcInput"
},
{
"$ref":
"#/components/schemas/EthereumSecp256k1SignRpcInput"
},
{
"$ref": "#/components/schemas/SolanaSignMessageRpcInput"
},
{
"$ref":
"#/components/schemas/SolanaSignTransactionRpcInput"
},
{
"$ref":
"#/components/schemas/SolanaSignAndSendTransactionRpcInput"
}
]
},
"method": {
"type": "string",
"enum": [
"POST"
]
},
"url": {
"type": "string"
}
}
},
"resource_id": {
"description": "ID of the resource being modified (wallet_id,
policy_id, etc)",
"type": "string"
},
"status": {
"description": "Current status of the intent",
"type": "string",
"enum": [
"executed",
"expired",
"failed",
"pending",
"rejected"
]
}
}
}Fields§
§action_result: Option<RpcIntentResponseActionResult>Detailed authorization information including key quorum members, thresholds, and signature status
created_at: f64§created_by_display_name: StringDisplay name of the user who created the intent
created_by_id: Option<String>ID of the user who created the intent. If undefined, the intent was created using the app secret
current_resource_data: Option<Wallet>§expires_at: f64§intent_id: StringUnique ID for the intent
intent_type: RpcIntentResponseIntentType§request_details: RpcIntentResponseRequestDetails§resource_id: StringID of the resource being modified (wallet_id, policy_id, etc)
status: RpcIntentResponseStatusCurrent status of the intent
Trait Implementations§
Source§impl Clone for RpcIntentResponse
impl Clone for RpcIntentResponse
Source§fn clone(&self) -> RpcIntentResponse
fn clone(&self) -> RpcIntentResponse
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RpcIntentResponse
impl Debug for RpcIntentResponse
Source§impl<'de> Deserialize<'de> for RpcIntentResponse
impl<'de> Deserialize<'de> for RpcIntentResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&RpcIntentResponse> for RpcIntentResponse
impl From<&RpcIntentResponse> for RpcIntentResponse
Source§fn from(value: &RpcIntentResponse) -> Self
fn from(value: &RpcIntentResponse) -> Self
Converts to this type from the input type.
Source§impl From<RpcIntentResponse> for IntentResponse
impl From<RpcIntentResponse> for IntentResponse
Source§fn from(value: RpcIntentResponse) -> Self
fn from(value: RpcIntentResponse) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for RpcIntentResponse
impl RefUnwindSafe for RpcIntentResponse
impl Send for RpcIntentResponse
impl Sync for RpcIntentResponse
impl Unpin for RpcIntentResponse
impl UnsafeUnpin for RpcIntentResponse
impl UnwindSafe for RpcIntentResponse
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more