Policies
Relay one stored owner-signed budget operation
Changed onFeature off by default, Sepolia only. First submit requires an unexpired preparation. Submit accepts only a personal_sign signature of the raw userOpHash. A durable hold and submitting marker precede relay of the exact operation. Repeat calls reconcile the hash without rebroadcasting. Rejected or unknown sends keep the hold until the nonce is consumed. Successful inclusion stays submitted until reset proof passes; activation and hold release are atomic. Signing is self-funded and fee capped.
post/wallets/{address}/policies/preparations/{id}:submit
Request
- Base URLhttps://api.avaprotocol.org/api/v1
- AuthHTTP bearer
Query parameters
chainIdinteger
The chain to operate on (a single value). Omit to use the aggregator default (the request's JWT aud chain, then the gateway default).
Request body
Response
Stored change and its current state; active only after reset proof.
Example response
{
"preparationId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"signing": {
"preparationId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"userOp": {
"sender": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"factory": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"paymaster": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
},
"userOpHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"entryPoint": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
},
"budget": {
"chainId": 11155111,
"policyId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"erc20": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"unmeteredPermissions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"retirements": [
{
"policyId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"erc20": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"amount": "500000000"
}
],
"native": {
"amount": "10000000000000000"
}
}
],
"liveApprovals": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"spender": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"pendingChange": {
"preparationId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"policyId": "01JG2FE5MDVKBPHEG0PEYSDKAC"
}
},
"approvalResets": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"spender": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"unmeteredPermissions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"policyId": "01JG2FE5MDVKBPHEG0PEYSDKAC",
"chainId": 11155111,
"sessionSigner": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"changes": {
"keptActions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"addedActions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"removedActions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"capChanges": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
]
},
"allowedActions": [
{
"target": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"erc20SpendCap": {
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"amount": "500000000"
},
"erc20SpendCaps": [
{
"token": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"amount": "500000000"
}
],
"nativeRecipients": [
"0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
],
"delegatedNativeRecipients": [
{
"recipient": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
"delegate": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB"
}
],
"nativeSpendCap": {
"amount": "10000000000000000"
}
}Changes
- info
endpoint added
- info