Push server for the WalletConnect V2 Protocol
This list contains both supported and potentially planned providers
- FCM (API Key)
- FCM V1 (Google Service Accounts)
- APNS (Certificate Based)
- APNS (Token Based)
- Web Push
Note Full documentation will be available soon. This is only a brief overview.
There are 3 options for receiving notifications within your wallet:
- Use the hosted platform. Go to settings in the cloud app for a project and create a Push URL, see the documentation on Push prerequisites for more info.
- Host this rust implementation.
there is an included
terraform
configuration to help with this. - Write your own implementation that follows the spec
When using the hosted platform or self-hosting this implementation you have to provide the instance you FCM API Key or APNS certificates and then - following the FCM/APNS docs - add support for that within your wallet.
You also have to register the device with the instance of Echo Server once when the client_id is initially
generated. By sending a POST request to <INSTANCE_URL>/clients
as per the spec.
Echo Server supports multi-tenancy. To enable multi-tenancy you need to specify a TENANT_DATABASE_URL
which will then disable
the single-tenant endpoints in favour of endpoints with a /:tenant_id
prefix e.g. /:tenant_id/client/:id
Warning The
TENANT_DATABASE_URL
must point to a different database than theDATABASE_URL
docker compose -f docker-compose.storage.yml up -d
just test-all
yarn install
yarn integration:dev # or yarn integration:staging
terraform -chdir=terraform init
terraform -chdir=terraform workspace select dev/staging/prod
terraform -chdir=terraform apply -var-file="vars/$(terraform -chdir=terraform workspace show).tfvars"
There are two Dockerfiles, one Dockerfile
is used in production by the hosted platform at WalletConnect
while slim.Dockerfile
is a stripped down version with no features enabled i.e. Single Tenant
If you wish to integrate Push functionality into your Wallet (only available on v2), please contact us.
To get started with contributing to Echo Server, look at the open issues. New contributors can also look at the issues labeled with "good first issue" as they should be suitable to people who are looking at the project for the first time.
Copyright 2022 WalletConnect, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.