curl --request POST \
--url https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction \
--header 'Api-Access-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"parameters": {
"domain": {},
"message": {},
"primaryType": "Permit",
"type": "EIP712_ETH_SIGNTYPEDDATA_V4",
"types": {}
},
"sourceWalletId": "<string>",
"idempotencyKey": "e763a50d-aa82-4ec7-b5a3-89ad0462d248"
}
'import requests
url = "https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction"
payload = {
"parameters": {
"domain": {},
"message": {},
"primaryType": "Permit",
"type": "EIP712_ETH_SIGNTYPEDDATA_V4",
"types": {}
},
"sourceWalletId": "<string>",
"idempotencyKey": "e763a50d-aa82-4ec7-b5a3-89ad0462d248"
}
headers = {
"Api-Access-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Access-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parameters: {
domain: {},
message: {},
primaryType: 'Permit',
type: 'EIP712_ETH_SIGNTYPEDDATA_V4',
types: {}
},
sourceWalletId: '<string>',
idempotencyKey: 'e763a50d-aa82-4ec7-b5a3-89ad0462d248'
})
};
fetch('https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"walletOperationId": "op_550e8400-e29b-41d4-a716-446655440000"
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}Propose Raw Transaction
Permissions required: Propose create transaction
Propose an off-chain signature or on-chain execution raw transaction for approval workflow.
This endpoint creates a raw transaction but defers signing. The operation stays in PENDING status and requires approval through your organization’s workflow before signing occurs.
Supported raw transaction types include Ethereum structured data signing (EIP-712), Ethereum personal message signing, Ethereum transaction execution, and Solana raw transaction execution.
This endpoint returns immediately with a walletOperationId in PENDING status. The transaction
will not be signed until it receives the required endorsements through your approval workflow. Poll
GET /wallet-operations/{walletOperationId} to check the status.
An operation awaiting approval and an operation being signed both read as PENDING. An operation that is
rejected by an approver, rejected during Anchorage Digital review, or that expires without approval moves to
FAILED. Poll with a timeout rather than indefinitely.
curl --request POST \
--url https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction \
--header 'Api-Access-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"parameters": {
"domain": {},
"message": {},
"primaryType": "Permit",
"type": "EIP712_ETH_SIGNTYPEDDATA_V4",
"types": {}
},
"sourceWalletId": "<string>",
"idempotencyKey": "e763a50d-aa82-4ec7-b5a3-89ad0462d248"
}
'import requests
url = "https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction"
payload = {
"parameters": {
"domain": {},
"message": {},
"primaryType": "Permit",
"type": "EIP712_ETH_SIGNTYPEDDATA_V4",
"types": {}
},
"sourceWalletId": "<string>",
"idempotencyKey": "e763a50d-aa82-4ec7-b5a3-89ad0462d248"
}
headers = {
"Api-Access-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Access-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parameters: {
domain: {},
message: {},
primaryType: 'Permit',
type: 'EIP712_ETH_SIGNTYPEDDATA_V4',
types: {}
},
sourceWalletId: '<string>',
idempotencyKey: 'e763a50d-aa82-4ec7-b5a3-89ad0462d248'
})
};
fetch('https://api.anchorage-staging.com/v3/wallet-operations/create/propose-raw-transaction', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"walletOperationId": "op_550e8400-e29b-41d4-a716-446655440000"
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}{
"message": "Missing required field 'amount'."
}Authorizations
An API key associated with a security role
Body
Raw transaction creation request for approval workflow
Request to create a raw transaction for approval workflow
The raw transaction parameters. Use the 'type' field to discriminate between different raw transaction types.
- EIP-712 Sign Typed Data V4 Request
- Ethereum Personal Sign Request
- Ethereum Send Transaction Request
- Solana Raw Transaction Request
Show child attributes
Show child attributes
Globally unique wallet identifier for the wallet that will pay transaction fees and sign the transaction
Client-provided idempotency key to ensure request is processed only once
128"e763a50d-aa82-4ec7-b5a3-89ad0462d248"
Response
Raw transaction request accepted for approval workflow
Async response with wallet operation ID. Use the walletOperationId with the GET /wallet-operations/{walletOperationId} endpoint to poll for the operation status and retrieve the created transaction details.
Wallet operation identifier. Poll the GET /wallet-operations/{walletOperationId} endpoint to check the status and retrieve the transaction data once creation is complete.
"op_550e8400-e29b-41d4-a716-446655440000"
Was this page helpful?