diff --git a/pool/pool.go b/pool/pool.go
index 21b9279..bd1bffb 100644
--- a/pool/pool.go
+++ b/pool/pool.go
@@ -1536,11 +1536,7 @@ func (p *Pool) Balance(ctx context.Context, prm PrmBalanceGet) (*accounting.Deci
 }
 
 // WaitForContainerPresence waits until the container is found on the NeoFS network.
-func (p *Pool) WaitForContainerPresence(ctx context.Context, cid *cid.ID, pollParams *ContainerPollingParams) error {
-	cp, err := p.connection()
-	if err != nil {
-		return err
-	}
+func WaitForContainerPresence(ctx context.Context, pool *Pool, cid *cid.ID, pollParams *ContainerPollingParams) error {
 	wctx, cancel := context.WithTimeout(ctx, pollParams.timeout)
 	defer cancel()
 	ticker := time.NewTimer(pollParams.pollInterval)
@@ -1548,10 +1544,9 @@ func (p *Pool) WaitForContainerPresence(ctx context.Context, cid *cid.ID, pollPa
 	wdone := wctx.Done()
 	done := ctx.Done()
 
-	var cliPrm sdkClient.PrmContainerGet
-
+	var prm PrmContainerGet
 	if cid != nil {
-		cliPrm.SetContainer(*cid)
+		prm.SetContainerID(*cid)
 	}
 
 	for {
@@ -1561,7 +1556,7 @@ func (p *Pool) WaitForContainerPresence(ctx context.Context, cid *cid.ID, pollPa
 		case <-wdone:
 			return wctx.Err()
 		case <-ticker.C:
-			_, err = cp.client.ContainerGet(ctx, cliPrm)
+			_, err := pool.GetContainer(ctx, prm)
 			if err == nil {
 				return nil
 			}
diff --git a/pool/pool_test.go b/pool/pool_test.go
index 9326a27..f89e671 100644
--- a/pool/pool_test.go
+++ b/pool/pool_test.go
@@ -583,7 +583,7 @@ func TestWaitPresence(t *testing.T) {
 	mockClient.EXPECT().CreateSession(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()
 	mockClient.EXPECT().EndpointInfo(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()
 	mockClient.EXPECT().NetworkInfo(gomock.Any(), gomock.Any()).Return(&sdkClient.ResNetworkInfo{}, nil).AnyTimes()
-	mockClient.EXPECT().GetContainer(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()
+	mockClient.EXPECT().GetContainer(gomock.Any(), gomock.Any()).Return(&sdkClient.ResContainerGet{}, nil).AnyTimes()
 
 	cache, err := newCache()
 	require.NoError(t, err)
@@ -609,14 +609,14 @@ func TestWaitPresence(t *testing.T) {
 			cancel()
 		}()
 
-		err := p.WaitForContainerPresence(ctx, nil, DefaultPollingParams())
+		err := WaitForContainerPresence(ctx, p, nil, DefaultPollingParams())
 		require.Error(t, err)
 		require.Contains(t, err.Error(), "context canceled")
 	})
 
 	t.Run("context deadline exceeded", func(t *testing.T) {
 		ctx := context.Background()
-		err := p.WaitForContainerPresence(ctx, nil, &ContainerPollingParams{
+		err := WaitForContainerPresence(ctx, p, nil, &ContainerPollingParams{
 			timeout:      500 * time.Millisecond,
 			pollInterval: 5 * time.Second,
 		})
@@ -626,7 +626,7 @@ func TestWaitPresence(t *testing.T) {
 
 	t.Run("ok", func(t *testing.T) {
 		ctx := context.Background()
-		err := p.WaitForContainerPresence(ctx, nil, &ContainerPollingParams{
+		err := WaitForContainerPresence(ctx, p, nil, &ContainerPollingParams{
 			timeout:      10 * time.Second,
 			pollInterval: 500 * time.Millisecond,
 		})