Update the draft and return its validation for specific policy types. Note: These endpoints are currently in beta and might be subject to changes.
const response: Promise<FireblocksResponse<DraftReviewAndValidationResponse>> = fireblocks.policyEditorV2Beta.updateDraft(policyEditorV2BetaApiUpdateDraftRequest);{
"draftResponse": {
"status": "<string>",
"rules": [
{
"name": "High Value Transfer Policy",
"id": "policy_rule_001",
"policyEngineVersion": "v2",
"type": "TRANSFER",
"initiator": "*",
"source": {
"operator": "INCLUDES",
"type": [
"VAULT",
"UNMANAGED"
],
"subType": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"ids": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"tags": [
{
"id": "tag_001"
}
],
"matchFrom": "ACCOUNT"
},
"verdict": {
"action": "ALLOW",
"approvers": {
"canInitiatorApprove": false,
"operator": "AND",
"allowOperatorAsAuthorizer": false,
"approvalGroups": [
{
"threshold": 2,
"users": [
"user1",
"user2"
]
}
]
},
"designatedSigners": {
"type": "SINGLE",
"users": [
"user1",
"user2"
],
"groups": [
"group1",
"group2"
]
}
},
"subType": "TRANSFER",
"asset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"destination": {
"type": [
"EXTERNAL"
],
"operator": "INCLUDES",
"addressType": "WHITELISTED"
},
"account": {
"operator": "INCLUDES",
"type": [
"VAULT"
],
"subType": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"ids": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"tags": [
{
"id": "tag_001"
}
],
"matchFrom": "ACCOUNT"
},
"side": "BUY",
"amountOverTime": {
"range": {
"min": "100",
"max": "10000"
},
"currency": "USD",
"timePeriod": {
"seconds": "86400",
"initiator": "PER_SINGLE_MATCH",
"source": "PER_SINGLE_MATCH",
"destination": "PER_SINGLE_MATCH"
}
},
"amount": {
"range": {
"min": "100",
"max": "10000"
},
"currency": "USD"
},
"externalDescriptor": "High value transfer policy for institutional clients",
"method": "*",
"isGlobalPolicy": false,
"programCall": {
"allowedSolanaProgramCalls": "WHITELISTED"
},
"screeningMetadata": {
"direction": "OUTBOUND",
"provider": "CHAINALYSIS",
"riskRating": "MEDIUM",
"riskScore": "0.8",
"exposureType": "DIRECT",
"category": [
"<string>"
],
"name": [
"<string>"
],
"categoryId": [
"<string>"
],
"status": "COMPLETED",
"sourceAddress": "0x123...",
"destAddress": "0x456..."
},
"quoteAsset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"baseAsset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"quoteAmount": {
"range": {
"min": "100",
"max": "10000"
}
},
"baseAmount": {
"range": {
"min": "100",
"max": "10000"
}
},
"dAppAddress": {
"globalWhitelisted": [
"rabby.io",
"jup.ag"
],
"tenantWhitelisted": [
"uniswap.com",
"opensea.io"
],
"urls": [
"*"
],
"operator": "INCLUDES"
},
"derivationPath": {
"path": [
44,
0,
0,
0,
0
],
"partial": false
},
"index": 1
}
],
"draftId": "<string>",
"metadata": {
"policyType": "TRANSFER",
"editedBy": "user123",
"editedAt": "2024-01-15T10:30:00Z",
"publishedBy": "user456",
"publishedAt": "2024-01-15T11:00:00Z"
}
},
"validation": {
"status": "<string>",
"checkResult": {
"errors": 123,
"results": [
{
"index": 123,
"status": "ok",
"errors": [
{
"errorMessage": "<string>",
"errorCode": 123,
"errorCodeName": "<string>",
"errorField": "operator"
}
]
}
]
}
}
}Documentation Index
Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
Use this file to discover all available pages before exploring further.
A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
Request schema for updating draft with policy types and rules
Policy type enumeration
TRANSFER, STAKE, CONTRACT_CALL, TYPED_MESSAGE, APPROVE, MINT, BURN, RAW, COMPLIANCE, DEPLOYMENT, PROGRAM_CALL, DAPP_CONNECTION, UPGRADE, ORDER, AML_CHAINALYSIS_V2_SCREENING, AML_CHAINALYSIS_V2_POST_SCREENING, AML_ELLIPTIC_HOLISTIC_SCREENING, AML_ELLIPTIC_HOLISTIC_POST_SCREENING, TR_NOTABENE_SCREENING, TR_NOTABENE_POST_SCREENING Array of policy rules
Show child attributes
Was this page helpful?
const response: Promise<FireblocksResponse<DraftReviewAndValidationResponse>> = fireblocks.policyEditorV2Beta.updateDraft(policyEditorV2BetaApiUpdateDraftRequest);{
"draftResponse": {
"status": "<string>",
"rules": [
{
"name": "High Value Transfer Policy",
"id": "policy_rule_001",
"policyEngineVersion": "v2",
"type": "TRANSFER",
"initiator": "*",
"source": {
"operator": "INCLUDES",
"type": [
"VAULT",
"UNMANAGED"
],
"subType": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"ids": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"tags": [
{
"id": "tag_001"
}
],
"matchFrom": "ACCOUNT"
},
"verdict": {
"action": "ALLOW",
"approvers": {
"canInitiatorApprove": false,
"operator": "AND",
"allowOperatorAsAuthorizer": false,
"approvalGroups": [
{
"threshold": 2,
"users": [
"user1",
"user2"
]
}
]
},
"designatedSigners": {
"type": "SINGLE",
"users": [
"user1",
"user2"
],
"groups": [
"group1",
"group2"
]
}
},
"subType": "TRANSFER",
"asset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"destination": {
"type": [
"EXTERNAL"
],
"operator": "INCLUDES",
"addressType": "WHITELISTED"
},
"account": {
"operator": "INCLUDES",
"type": [
"VAULT"
],
"subType": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"ids": [
{
"type": "VAULT",
"id": "account123",
"subType": "INTERNAL",
"address": "0x123..."
}
],
"tags": [
{
"id": "tag_001"
}
],
"matchFrom": "ACCOUNT"
},
"side": "BUY",
"amountOverTime": {
"range": {
"min": "100",
"max": "10000"
},
"currency": "USD",
"timePeriod": {
"seconds": "86400",
"initiator": "PER_SINGLE_MATCH",
"source": "PER_SINGLE_MATCH",
"destination": "PER_SINGLE_MATCH"
}
},
"amount": {
"range": {
"min": "100",
"max": "10000"
},
"currency": "USD"
},
"externalDescriptor": "High value transfer policy for institutional clients",
"method": "*",
"isGlobalPolicy": false,
"programCall": {
"allowedSolanaProgramCalls": "WHITELISTED"
},
"screeningMetadata": {
"direction": "OUTBOUND",
"provider": "CHAINALYSIS",
"riskRating": "MEDIUM",
"riskScore": "0.8",
"exposureType": "DIRECT",
"category": [
"<string>"
],
"name": [
"<string>"
],
"categoryId": [
"<string>"
],
"status": "COMPLETED",
"sourceAddress": "0x123...",
"destAddress": "0x456..."
},
"quoteAsset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"baseAsset": {
"nftTransfer": false,
"assetTypes": [
"FUNGIBLE",
"NFT",
"*"
],
"operator": "INCLUDES"
},
"quoteAmount": {
"range": {
"min": "100",
"max": "10000"
}
},
"baseAmount": {
"range": {
"min": "100",
"max": "10000"
}
},
"dAppAddress": {
"globalWhitelisted": [
"rabby.io",
"jup.ag"
],
"tenantWhitelisted": [
"uniswap.com",
"opensea.io"
],
"urls": [
"*"
],
"operator": "INCLUDES"
},
"derivationPath": {
"path": [
44,
0,
0,
0,
0
],
"partial": false
},
"index": 1
}
],
"draftId": "<string>",
"metadata": {
"policyType": "TRANSFER",
"editedBy": "user123",
"editedAt": "2024-01-15T10:30:00Z",
"publishedBy": "user456",
"publishedAt": "2024-01-15T11:00:00Z"
}
},
"validation": {
"status": "<string>",
"checkResult": {
"errors": 123,
"results": [
{
"index": 123,
"status": "ok",
"errors": [
{
"errorMessage": "<string>",
"errorCode": 123,
"errorCodeName": "<string>",
"errorField": "operator"
}
]
}
]
}
}
}