openapi: 3.0.1 info: title: BitGo Platform Addresses Policies API description: Representative specification of the BitGo Platform REST API v2 for institutional digital-asset custody. Covers wallets, addresses, transactions and transfers, keychains, webhooks, wallet policies, staking, trading and settlement over the Go Network, and enterprise / user surfaces. Most endpoints are namespaced under a coin (for example `btc`, `eth`, `hteth`) via the `{coin}` path parameter. Authentication uses a Bearer access token. Transaction-signing operations that require private-key material are typically issued against a self-hosted BitGo Express proxy. termsOfService: https://www.bitgo.com/legal/terms-of-service/ contact: name: BitGo Support url: https://developers.bitgo.com/ version: '2.0' servers: - url: https://app.bitgo.com/api/v2 description: BitGo production platform - url: https://app.bitgo-test.com/api/v2 description: BitGo test environment - url: http://localhost:3080/api/v2 description: Self-hosted BitGo Express signing proxy (default port) security: - accessToken: [] tags: - name: Policies paths: /{coin}/wallet/{walletId}/policy: put: operationId: updateWalletPolicy tags: - Policies summary: Update wallet policy description: Add, update, or remove a spending policy rule on a wallet. Rules include velocity limits, per-transaction limits, address whitelists, and required multi-user approvals. parameters: - $ref: '#/components/parameters/coin' - $ref: '#/components/parameters/walletId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePolicyRequest' responses: '200': description: The wallet with its updated policy. content: application/json: schema: $ref: '#/components/schemas/Wallet' components: parameters: walletId: name: walletId in: path required: true description: The wallet identifier. schema: type: string coin: name: coin in: path required: true description: The coin or token ticker (for example `btc`, `eth`, `hteth`, `sol`, `matic`). Testnet coins are prefixed with `t` (for example `tbtc`). schema: type: string example: btc schemas: Wallet: type: object properties: id: type: string coin: type: string label: type: string m: type: integer description: Number of signatures required to spend. n: type: integer description: Number of keys on the wallet. keys: type: array items: type: string description: The keychain IDs backing the wallet (user, backup, BitGo). balanceString: type: string description: The confirmed balance as a base-unit string. spendableBalanceString: type: string enterprise: type: string type: type: string enum: - hot - cold - custodial - trading required: - id - coin PolicyRule: type: object properties: id: type: string type: type: string enum: - velocityLimit - coinAddressWhitelist - transactionLimit - webhook condition: type: object additionalProperties: true action: type: object properties: type: type: string enum: - deny - getApproval UpdatePolicyRequest: type: object properties: action: type: object properties: type: type: string enum: - getInfo - update - remove rule: $ref: '#/components/schemas/PolicyRule' required: - action securitySchemes: accessToken: type: http scheme: bearer bearerFormat: accessToken description: 'BitGo access token passed as `Authorization: Bearer `.'