Skip to content

Palisade API (2.0)

The Palisade API enables programmatic interaction with the various features of the Palisade platform

Download OpenAPI description
Languages
Servers
Mock server

https://docs.ripple.com/_mock/products/palisade/api-docs/palisade-api/palisade-api/

Sandbox server (uses TESTNET data, private keys and accounts)

https://api.sandbox.palisade.co/

Palisade server (uses MAINNET data, private keys and accounts)

https://api.palisade.co/

Addresses

Used to manage addresses

Operations

Allow Addresses (deprecated)

Used to manage legacy allow addresses

API Credentials

Used to manage credentials

Operations

Approvals

Used to manage approvals

Operations

Approvers

Used to manage approvers

Operations

Audit

Used to manage configuration for audit

Operations

Backup

Used to manage backups

Operations

Balances

Used to view balances

Operations

Compliance

Used to manage compliance

Operations

Counterparties

Used to manage counterparties

Operations

Devices

Used to manage devices

Operations

Information

Used to view information about the platform

Operations

MPC - Memberships

Used to manage MPC memberships

Operations

MPC - Quorums

Used to manage MPC quorums

Operations

MPC - Sessions

Used to manage MPC sessions

Operations

Organizations

Used to manage organizations

Operations

Policies

Used to manage connections policies

Operations

Rates

Used to retrieve rates

Operations

Sweep Configurations

Used to manage sweep configurations

Operations

Tags

Used to manage organization tags

Operations

Transactions

Used to manage transactions

Operations

Transactions - XRP

Used to manage XRP specific transactions

Operations

Users

Used to manage users

Operations

Vaults

Used to manage vaults

Operations

Vault Tags

Used to manage vault tags

Operations

Wallets

Used to manage wallets

Operations

Wallet Tags

Used to manage wallet tags

Operations

Wallet Connect

Used to manage connections

Operations

Webhooks

Used to manage webhooks

Operations

Registry

Operations

Get an asset

Request

Get asset configuration by ID

Security
TokenAuth
Path
idstringrequired

Asset ID in format blockchain:contract:symbol

curl -i -X GET \
  'https://docs.ripple.com/_mock/products/palisade/api-docs/palisade-api/palisade-api/v2/assets/{id}' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
idstringrequired

ID is unique across all blockchains and created by combining the blockchain ID, contract address, and symbol

Example: "5:0xbehbehfb:USDC"
standardstring(Supported asset types)required
Enum"NATIVE""ERC20""ISSUED_CURRENCY""ERC721""SPL""CUSTOM"
symbolstringrequired

The currency symbol of the asset

Example: "LINK"
namestring

The human readable name of the asset

Example: "Chainlink"
blockchainstring(Supported blockchains)required
Enum"AVALANCHE""ETHEREUM""XRP_LEDGER""POLYGON""BNBCHAIN""BASE""HEDERA""ARBITRUM""ONE_MONEY""SOLANA"
decimalsinteger(int32)

Count of decimal places for the asset

Example: 18
vettedboolean

Whether the asset is vetted on the regulated platform

Example: true
enabledboolean

Whether the asset is currently enabled on the platform

Example: true
contractstring

The token contract address. This field will be empty if the asset is the native coin of the blockchain

Example: "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e"
createdAtstring(date-time)required

The date and time the asset was created

Example: "2022-03-29T10:22:22.420Z"
updatedAtstring(date-time)

The date and time the asset was last updated

Example: "2022-03-29T10:22:22.420Z"
organizationIdstring

Organization ID for custom assets

coingeckoIdstring

CoinGecko identifier for price data (optional for testnet assets)

Example: "ethereum"
sourcestring(AssetSource defines the source of asset data)
  • ASSET_SOURCE_LEGACY: Legacy entries
  • ASSET_SOURCE_AUTO: Auto-generated
  • ASSET_SOURCE_COINGECKO: From CoinGecko sync
  • ASSET_SOURCE_PALISADE: Admin entries
  • ASSET_SOURCE_CUSTOMER: Customer entries
Enum"ASSET_SOURCE_LEGACY""ASSET_SOURCE_AUTO""ASSET_SOURCE_COINGECKO""ASSET_SOURCE_PALISADE""ASSET_SOURCE_CUSTOMER"
sourceMetadataobject(protobufAny)

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }

Example 2: Pack and unpack a message in Java.

Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); }

Example 3: Pack and unpack a message in Python.

foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...

Example 4: Pack and unpack a message in Go

foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

JSON ==== The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

package google.profile; message Person { string first_name = 1; string last_name = 2; }

{ "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": }

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }

lastSyncedAtstring(date-time)

When this asset was last synchronized

Example: "2024-08-08T10:22:22.420Z"
syncVersioninteger(int32)

Version counter for sync updates

Example: 1
contractAddressChecksummedstring

Checksummed version of the contract address

Example: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
Response
application/json
{ "id": "5:0xbehbehfb:USDC", "standard": "NATIVE", "symbol": "LINK", "name": "Chainlink", "blockchain": "AVALANCHE", "decimals": 18, "vetted": true, "enabled": true, "contract": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e", "createdAt": "2022-03-29T10:22:22.420Z", "updatedAt": "2022-03-29T10:22:22.420Z", "organizationId": "string", "coingeckoId": "ethereum", "source": "ASSET_SOURCE_LEGACY", "sourceMetadata": { "@type": "string", "property1": null, "property2": null }, "lastSyncedAt": "2024-08-08T10:22:22.420Z", "syncVersion": 1, "contractAddressChecksummed": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }

Delete an asset

Request

Soft delete an asset from the registry

Security
TokenAuth
Path
idstringrequired

Asset ID to delete

curl -i -X DELETE \
  'https://docs.ripple.com/_mock/products/palisade/api-docs/palisade-api/palisade-api/v2/assets/{id}' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

A successful response.

Bodyapplication/json
object(Empty response for successful deletion)
Response
application/json
{}

Update an asset

Request

Update an existing asset in the registry

Security
TokenAuth
Path
idstringrequired

Asset ID to update

Bodyapplication/jsonrequired
namestring

Updated asset name

Example: "USD Coin"
decimalsinteger(int32)

Updated decimal places

Example: 6
coingeckoIdstring

Updated CoinGecko identifier

Example: "usd-coin"
enabledboolean

Updated enabled status

Example: true
vettedboolean

Updated vetted status

Example: true
curl -i -X PATCH \
  'https://docs.ripple.com/_mock/products/palisade/api-docs/palisade-api/palisade-api/v2/assets/{id}' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "USD Coin",
    "decimals": 6,
    "coingeckoId": "usd-coin",
    "enabled": true,
    "vetted": true
  }'

Responses

Bodyapplication/json
idstringrequired

ID is unique across all blockchains and created by combining the blockchain ID, contract address, and symbol

Example: "5:0xbehbehfb:USDC"
standardstring(Supported asset types)required
Enum"NATIVE""ERC20""ISSUED_CURRENCY""ERC721""SPL""CUSTOM"
symbolstringrequired

The currency symbol of the asset

Example: "LINK"
namestring

The human readable name of the asset

Example: "Chainlink"
blockchainstring(Supported blockchains)required
Enum"AVALANCHE""ETHEREUM""XRP_LEDGER""POLYGON""BNBCHAIN""BASE""HEDERA""ARBITRUM""ONE_MONEY""SOLANA"
decimalsinteger(int32)

Count of decimal places for the asset

Example: 18
vettedboolean

Whether the asset is vetted on the regulated platform

Example: true
enabledboolean

Whether the asset is currently enabled on the platform

Example: true
contractstring

The token contract address. This field will be empty if the asset is the native coin of the blockchain

Example: "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e"
createdAtstring(date-time)required

The date and time the asset was created

Example: "2022-03-29T10:22:22.420Z"
updatedAtstring(date-time)

The date and time the asset was last updated

Example: "2022-03-29T10:22:22.420Z"
organizationIdstring

Organization ID for custom assets

coingeckoIdstring

CoinGecko identifier for price data (optional for testnet assets)

Example: "ethereum"
sourcestring(AssetSource defines the source of asset data)
  • ASSET_SOURCE_LEGACY: Legacy entries
  • ASSET_SOURCE_AUTO: Auto-generated
  • ASSET_SOURCE_COINGECKO: From CoinGecko sync
  • ASSET_SOURCE_PALISADE: Admin entries
  • ASSET_SOURCE_CUSTOMER: Customer entries
Enum"ASSET_SOURCE_LEGACY""ASSET_SOURCE_AUTO""ASSET_SOURCE_COINGECKO""ASSET_SOURCE_PALISADE""ASSET_SOURCE_CUSTOMER"
sourceMetadataobject(protobufAny)

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }

Example 2: Pack and unpack a message in Java.

Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); }

Example 3: Pack and unpack a message in Python.

foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...

Example 4: Pack and unpack a message in Go

foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

JSON ==== The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

package google.profile; message Person { string first_name = 1; string last_name = 2; }

{ "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": }

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }

lastSyncedAtstring(date-time)

When this asset was last synchronized

Example: "2024-08-08T10:22:22.420Z"
syncVersioninteger(int32)

Version counter for sync updates

Example: 1
contractAddressChecksummedstring

Checksummed version of the contract address

Example: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
Response
application/json
{ "id": "5:0xbehbehfb:USDC", "standard": "NATIVE", "symbol": "LINK", "name": "Chainlink", "blockchain": "AVALANCHE", "decimals": 18, "vetted": true, "enabled": true, "contract": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e", "createdAt": "2022-03-29T10:22:22.420Z", "updatedAt": "2022-03-29T10:22:22.420Z", "organizationId": "string", "coingeckoId": "ethereum", "source": "ASSET_SOURCE_LEGACY", "sourceMetadata": { "@type": "string", "property1": null, "property2": null }, "lastSyncedAt": "2024-08-08T10:22:22.420Z", "syncVersion": 1, "contractAddressChecksummed": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }

Transactions - Sweep

Operations

Sweep Instances

Operations