Onboard - Preapproval for external party creation

Hi guys,

So I’m about to make the last step of my external party allocation, I hold my own private key, I’ve made a wallet, permission to custodian, and I can internal transfer between my parties. All good, the thing is that my last scenario is to receive funds from an external node.

I would like to stick with the preapproval contract that should be added to each newly added external party. I can make a preapproval contract using the endpoint from the wallet for my custodian

https://{domain}/api/validator/v0/wallet/transfer-preapproval

For the rest of my implementation, I’ve been using gRPC to allocate to an external party, grant user rights, and create a wallet. How is it possible for my external parties to get the contract either using gRPC (seems not possible) or using the wallet API?

I tried with this, resulting in a 409 error code.

curl -v -X POST https://{domain}/api/validator/v0/wallet/transfer-preapproval
-H “Authorization: Bearer {Token}”
-H “Content-Type: application/json”
-d ‘{“party_id”: “8996F10C30967E8403D7EE4998967D133638E4C116EC02CF8D3C84137C32D078::1220daa4365aafd65a37214e23c7eea4068e97e87f3f804c4a34388b3d3336dde76c”}’

So questions:

  1. How do we create a TransferPreapproval for an externally-allocated party? The wallet API (POST /v0/wallet/transfer-preapproval) only creates one for the JWT-authenticated user (our custodian). We need one per external party so senders can use TransferPreapproval_Send directly to each address.
  2. Does the External Signing API support AmuletRules_CreateTransferPreapproval? If so, what’s the endpoint/flow? We have ActAs rights on each external party and can sign with their key

Hey @Bacarden

A few things here for you:

  • 409 means a preapproval already exists for that party as wallet API endpoint creates a TransferPreapproval for whichever party is authenticated via the JWT AND it ignores the party_id body field.
  • also, Yes!! use the External Signing API, this is exactly the right flow since you have actAsrights on each external party and hold their private keys, exercise AmuletRules_CreateTransferPreapprovalvia the external signing flow.
  • Note: You can get the current AmuletRules contract ID from the Scan API which you will use to submit txns.

So I found the documentation

So the flow is that when I’m done with the onboarding, granting permissions and want to add the pre-approval contract, I need to use the external signing flow below:

  1. Create a proposal for a party - /v0/admin/external-party/setup-proposal
  2. Get and sign a tx hash - /v0/admin/external-party/setup-proposal/prepare-accept
  3. Submit the signed has - /v0/admin/external-party/setup-proposal/submit-accept

Kind of the same type of flow as the onboarding of external parties, and there is no way around these 3 steps for the pre-approval for external parties?

Yup, gotta follow the docs, apart from what’s given in docs, there is no other alternative I am aware of.

Ok, thank you. I will give it a shot :slightly_smiling_face: