Accounts
Account Resource
Account resource represents all of a user's accounts, including cryptocurrency wallets, fiat currency accounts, and vaults. This is represented in the type
field. New types may be added in the future, so make sure this won't break your implementation.
User can only have one primary account and its type can only be wallet
.
Parameter | Description |
---|---|
id string | Resource ID |
name string | User or system defined name |
primary boolean | Primary account (or not) |
type string, enumerable | Account's type. Valid values: wallet , fiat , vault |
currency string | Account's currency |
balance money hash | Crypto balance |
created_at timestamp | |
updated_at timestamp | |
resource string, constant account | |
resource_path string |
Account resource
{
"id": "2bbf394c-193b-5b2a-9155-3b4732659ede",
"name": "My Wallet",
"primary": true,
"type": "wallet",
"currency": "BTC",
"balance": {
"amount": "39.59000000",
"currency": "BTC"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-01-31T20:49:02Z",
"resource": "account",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede"
}
List Accounts
List a current user's accounts to which the authentication method has access to.
HTTP Request
GET https://api.coinbase.com/v2/accounts
Scopes
wallet:accounts:read
curl https://api.coinbase.com/v2/accounts \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
accounts = client.accounts
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
accounts = client.get_accounts()
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccounts({}, function(err, accounts) {
console.log(accounts);
});
Example response
{
"pagination": {
"ending_before": null,
"starting_after": null,
"limit": 25,
"order": "desc",
"previous_uri": null,
"next_uri": null
},
"data": [
{
"id": "58542935-67b5-56e1-a3f9-42686e07fa40",
"name": "My Vault",
"primary": false,
"type": "vault",
"currency": "BTC",
"balance": {
"amount": "4.00000000",
"currency": "BTC"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-01-31T20:49:02Z",
"resource": "account",
"resource_path": "/v2/accounts/58542935-67b5-56e1-a3f9-42686e07fa40",
"ready": true
},
{
"id": "2bbf394c-193b-5b2a-9155-3b4732659ede",
"name": "My Wallet",
"primary": true,
"type": "wallet",
"currency": "BTC",
"balance": {
"amount": "39.59000000",
"currency": "BTC"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-01-31T20:49:02Z",
"resource": "account",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede"
}
]
}
Show an Account
Show (or get) a current user's account. To access the primary account for a given currency, a currency string (e.g., BTC
or ETH
) can be used instead of the account ID in the URL.
HTTP Request
GET https://api.coinbase.com/v2/accounts/:account_id
Scopes
wallet:accounts:read
curl https://api.coinbase.com/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
account = client.account("2bbf394c-193b-5b2a-9155-3b4732659ede")
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
account = client.get_account("2bbf394c-193b-5b2a-9155-3b4732659ede")
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount("2bbf394c-193b-5b2a-9155-3b4732659ede", function(err, account) {
console.log(account);
});
Example response
{
"data": {
"id": "2bbf394c-193b-5b2a-9155-3b4732659ede",
"name": "My Wallet",
"primary": true,
"type": "wallet",
"currency": "BTC",
"balance": {
"amount": "39.59000000",
"currency": "BTC"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-01-31T20:49:02Z",
"resource": "account",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede"
}
}
Update Account
Modify a user's account.
HTTP Request
PUT https://api.coinbase.com/v2/accounts/:account_id
Scopes
wallet:accounts:update
Arguments
Parameter | Type | Required | Description |
---|---|---|---|
name | string | Optional | Account name |
Example request
curl https://api.coinbase.com/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b \
-X PUT
-H 'Content-Type: application/json'
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
-d '{"name": "New account name"}'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
account = client.update_account('82de7fcd-db72-5085-8ceb-bee19303080b',
{name: 'New account name'})
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
account = client.update_account('82de7fcd-db72-5085-8ceb-bee19303080b',
name='New account name')
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('82de7fcd-db72-5085-8ceb-bee19303080b', function(err, account) {
account.update({'name': 'New account name'}, function(err, acct) {
console.log(acct);
});
});
Response (200)
{
"data": {
"id": "82de7fcd-db72-5085-8ceb-bee19303080b",
"name": "New account name",
"primary": false,
"type": "wallet",
"currency": "BTC",
"balance": {
"amount": "0.00000000",
"currency": "BTC"
},
"created_at": "2015-03-31T15:21:58-07:00",
"updated_at": "2015-03-31T15:21:58-07:00",
"resource": "account",
"resource_path": "/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b"
}
}
Delete Account
Remove a user's account. You cannot remove:
- Primary accounts
- Accounts with non-zero balance
- Fiat accounts
- Vaults with a pending withdrawal
HTTP Request
DELETE https://api.coinbase.com/v2/accounts/:account_id
Scopes
wallet:accounts:delete
Example request
curl https://api.coinbase.com/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b \
-X DELETE
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
account = client.delete_account('82de7fcd-db72-5085-8ceb-bee19303080b')
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
account = client.delete_account('82de7fcd-db72-5085-8ceb-bee19303080b')
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('82de7fcd-db72-5085-8ceb-bee19303080b', function(err, account) {
account.delete(function(err, resp) {
console.log(resp);
});
});
Response (204 No Content)
Create Wallet
Create new wallet.
HTTP request
GET https://api.coinbase.com/v2/accounts/{asset-id}
Scopes
wallet:accounts:create
Example
Request
curl --location --request GET 'https://api.coinbase.com/v2/accounts/LTC' \
--header 'CB-ACCESS-KEY:<key>' \
--header 'CB-ACCESS-SIGN: <hash>' \
--header 'CB-ACCESS-TIMESTAMP: 1665694716' \
--header 'CB-VERSION: 2022-05-07'
Response (200)
{
"data": {
"id": "f5d0397a-0e0b-5c00-8fcc-b5e9fea21b0b",
"name": "LTC Wallet",
"primary": true,
"type": "wallet",
"currency": {
"code": "LTC",
"name": "Litecoin",
"color": "#A6A9AA",
"sort_index": 104,
"exponent": 8,
"type": "crypto",
"address_regex": "^((L|M)[a-km-zA-HJ-NP-Z1-9]{25,34})|^(ltc1([qpzry9x8gf2tvdw0s3jn54khce6mua7l]{39}|[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{59}))$",
"asset_id": "c9c24c6e-c045-5fde-98a2-00ea7f520437",
"slug": "litecoin"
},
"balance": {
"amount": "0.00000000",
"currency": "LTC"
},
"created_at": "2022-10-13T21:07:04Z",
"updated_at": "2022-10-13T21:07:04Z",
"resource": "account",
"resource_path": "/v2/accounts/f5d0397a-0e0b-5c00-8fcc-b5e9fea21b0b",
"allow_deposits": true,
"allow_withdrawals": true
}
}